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 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/app/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__esm,
|
|
3
|
+
__export
|
|
4
|
+
} from "./chunk-Z6ZWNWWR.js";
|
|
5
|
+
|
|
6
|
+
// src/adapter/postgres.ts
|
|
7
|
+
var postgres_exports = {};
|
|
8
|
+
__export(postgres_exports, {
|
|
9
|
+
PostgresAdapter: () => PostgresAdapter
|
|
10
|
+
});
|
|
11
|
+
var PostgresAdapter;
|
|
12
|
+
var init_postgres = __esm({
|
|
13
|
+
"src/adapter/postgres.ts"() {
|
|
14
|
+
PostgresAdapter = class {
|
|
15
|
+
// Typed as any: Bun.SQL's instance type is not reliably exported across
|
|
16
|
+
// bun-types versions and the class is a Bun global — no stable import path.
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
sql;
|
|
19
|
+
onQuery;
|
|
20
|
+
constructor(config) {
|
|
21
|
+
if (config.max !== void 0 && config.max < 1) {
|
|
22
|
+
throw new Error(`PostgresAdapter: max connections must be at least 1, got ${config.max}`);
|
|
23
|
+
}
|
|
24
|
+
if (!process.env["DATABASE_URL"]) {
|
|
25
|
+
process.env["DATABASE_URL"] = config.url;
|
|
26
|
+
}
|
|
27
|
+
this.sql = new Bun.SQL(config.url, {
|
|
28
|
+
max: config.max ?? 10,
|
|
29
|
+
idleTimeout: config.idleTimeout ?? 30
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async query(sql, params = []) {
|
|
33
|
+
const t0 = performance.now();
|
|
34
|
+
const rows = await this.sql.unsafe(sql, params);
|
|
35
|
+
this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: "query" });
|
|
36
|
+
return rows;
|
|
37
|
+
}
|
|
38
|
+
async execute(sql, params = []) {
|
|
39
|
+
const t0 = performance.now();
|
|
40
|
+
const result = await this.sql.unsafe(sql, params);
|
|
41
|
+
this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: "execute" });
|
|
42
|
+
const rowsAffected = typeof result?.count === "number" ? result.count : result?.length ?? 0;
|
|
43
|
+
return { rowsAffected };
|
|
44
|
+
}
|
|
45
|
+
async transaction(fn) {
|
|
46
|
+
return this.sql.begin(async (tx) => {
|
|
47
|
+
const txAdapter = {
|
|
48
|
+
query: (s, p = []) => tx.unsafe(s, p),
|
|
49
|
+
execute: async (s, p = []) => {
|
|
50
|
+
const r = await tx.unsafe(s, p);
|
|
51
|
+
const rowsAffected = typeof r?.count === "number" ? r.count : r?.length ?? 0;
|
|
52
|
+
return { rowsAffected };
|
|
53
|
+
},
|
|
54
|
+
transaction: (innerFn) => innerFn(txAdapter),
|
|
55
|
+
// nested: reuse same tx
|
|
56
|
+
close: async () => {
|
|
57
|
+
}
|
|
58
|
+
// no-op inside transaction
|
|
59
|
+
};
|
|
60
|
+
return fn(txAdapter);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
async close() {
|
|
64
|
+
await this.sql.end?.();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
PostgresAdapter,
|
|
72
|
+
postgres_exports,
|
|
73
|
+
init_postgres
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=chunk-32M77PK3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/adapter/postgres.ts"],"sourcesContent":["import type { VelnAdapter, BindingValue, ExecuteResult, QueryLogEntry } from './types'\n\nexport interface PostgresConfig {\n url: string\n max?: number\n idleTimeout?: number\n}\n\nexport class PostgresAdapter implements VelnAdapter {\n // Typed as any: Bun.SQL's instance type is not reliably exported across\n // bun-types versions and the class is a Bun global — no stable import path.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly sql: any\n onQuery?: (entry: QueryLogEntry) => void\n\n constructor(config: PostgresConfig) {\n if (config.max !== undefined && config.max < 1) {\n throw new Error(`PostgresAdapter: max connections must be at least 1, got ${config.max}`)\n }\n // Set DATABASE_URL if not already set — Bun.sql reads from environment\n if (!process.env['DATABASE_URL']) {\n process.env['DATABASE_URL'] = config.url\n }\n // @ts-ignore — Bun.SQL is a Bun global constructor, not in all bun-types versions\n this.sql = new Bun.SQL(config.url, {\n max: config.max ?? 10,\n idleTimeout: config.idleTimeout ?? 30,\n })\n }\n\n async query<T>(sql: string, params: BindingValue[] = []): Promise<T[]> {\n const t0 = performance.now()\n // .unsafe() accepts a raw SQL string + positional params array\n const rows = await this.sql.unsafe(sql, params) as T[]\n this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: 'query' })\n return rows\n }\n\n async execute(sql: string, params: BindingValue[] = []): Promise<ExecuteResult> {\n const t0 = performance.now()\n const result = await this.sql.unsafe(sql, params)\n this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: 'execute' })\n // Bun.SQL result exposes .count for rows affected on DML statements\n const rowsAffected = typeof result?.count === 'number' ? result.count : (result?.length ?? 0)\n return { rowsAffected } // lastInsertId not available without RETURNING clause\n }\n\n async transaction<T>(fn: (tx: VelnAdapter) => Promise<T>): Promise<T> {\n return this.sql.begin(async (tx: any) => {\n const txAdapter: VelnAdapter = {\n query: (s, p = []) => tx.unsafe(s, p),\n execute: async (s, p = []) => {\n const r = await tx.unsafe(s, p)\n const rowsAffected = typeof r?.count === 'number' ? r.count : (r?.length ?? 0)\n return { rowsAffected }\n },\n transaction: (innerFn) => innerFn(txAdapter), // nested: reuse same tx\n close: async () => {}, // no-op inside transaction\n }\n return fn(txAdapter)\n })\n }\n\n async close(): Promise<void> {\n await this.sql.end?.()\n }\n}\n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA,IAQa;AARb;AAAA;AAQO,IAAM,kBAAN,MAA6C;AAAA;AAAA;AAAA;AAAA,MAIjC;AAAA,MACjB;AAAA,MAEA,YAAY,QAAwB;AAClC,YAAI,OAAO,QAAQ,UAAa,OAAO,MAAM,GAAG;AAC9C,gBAAM,IAAI,MAAM,4DAA4D,OAAO,GAAG,EAAE;AAAA,QAC1F;AAEA,YAAI,CAAC,QAAQ,IAAI,cAAc,GAAG;AAChC,kBAAQ,IAAI,cAAc,IAAI,OAAO;AAAA,QACvC;AAEA,aAAK,MAAM,IAAI,IAAI,IAAI,OAAO,KAAK;AAAA,UACjC,KAAK,OAAO,OAAO;AAAA,UACnB,aAAa,OAAO,eAAe;AAAA,QACrC,CAAC;AAAA,MACH;AAAA,MAEA,MAAM,MAAS,KAAa,SAAyB,CAAC,GAAiB;AACrE,cAAM,KAAK,YAAY,IAAI;AAE3B,cAAM,OAAO,MAAM,KAAK,IAAI,OAAO,KAAK,MAAM;AAC9C,aAAK,UAAU,EAAE,KAAK,QAAQ,YAAY,YAAY,IAAI,IAAI,IAAI,MAAM,QAAQ,CAAC;AACjF,eAAO;AAAA,MACT;AAAA,MAEA,MAAM,QAAQ,KAAa,SAAyB,CAAC,GAA2B;AAC9E,cAAM,KAAK,YAAY,IAAI;AAC3B,cAAM,SAAS,MAAM,KAAK,IAAI,OAAO,KAAK,MAAM;AAChD,aAAK,UAAU,EAAE,KAAK,QAAQ,YAAY,YAAY,IAAI,IAAI,IAAI,MAAM,UAAU,CAAC;AAEnF,cAAM,eAAe,OAAO,QAAQ,UAAU,WAAW,OAAO,QAAS,QAAQ,UAAU;AAC3F,eAAO,EAAE,aAAa;AAAA,MACxB;AAAA,MAEA,MAAM,YAAe,IAAiD;AACpE,eAAO,KAAK,IAAI,MAAM,OAAO,OAAY;AACvC,gBAAM,YAAyB;AAAA,YAC7B,OAAa,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC;AAAA,YAC1C,SAAa,OAAO,GAAG,IAAI,CAAC,MAAM;AAChC,oBAAM,IAAI,MAAM,GAAG,OAAO,GAAG,CAAC;AAC9B,oBAAM,eAAe,OAAO,GAAG,UAAU,WAAW,EAAE,QAAS,GAAG,UAAU;AAC5E,qBAAO,EAAE,aAAa;AAAA,YACxB;AAAA,YACA,aAAa,CAAC,YAAY,QAAQ,SAAS;AAAA;AAAA,YAC3C,OAAa,YAAY;AAAA,YAAC;AAAA;AAAA,UAC5B;AACA,iBAAO,GAAG,SAAS;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,MAEA,MAAM,QAAuB;AAC3B,cAAM,KAAK,IAAI,MAAM;AAAA,MACvB;AAAA,IACF;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__esm,
|
|
3
|
+
__export
|
|
4
|
+
} from "./chunk-Z6ZWNWWR.js";
|
|
5
|
+
|
|
6
|
+
// src/adapter/sqlite.ts
|
|
7
|
+
var sqlite_exports = {};
|
|
8
|
+
__export(sqlite_exports, {
|
|
9
|
+
SQLiteAdapter: () => SQLiteAdapter
|
|
10
|
+
});
|
|
11
|
+
import { Database } from "bun:sqlite";
|
|
12
|
+
var STMT_CACHE_MAX, SQLiteAdapter;
|
|
13
|
+
var init_sqlite = __esm({
|
|
14
|
+
"src/adapter/sqlite.ts"() {
|
|
15
|
+
STMT_CACHE_MAX = 500;
|
|
16
|
+
SQLiteAdapter = class {
|
|
17
|
+
db;
|
|
18
|
+
// LRU cache for prepared statements — Map preserves insertion order.
|
|
19
|
+
// On cache hit: entry is moved to end (most recently used).
|
|
20
|
+
// On cache full: oldest entry (front of Map) is evicted before inserting.
|
|
21
|
+
_stmtCache = /* @__PURE__ */ new Map();
|
|
22
|
+
onQuery;
|
|
23
|
+
constructor(config = {}) {
|
|
24
|
+
const path = typeof config === "string" ? config : config.path ?? ":memory:";
|
|
25
|
+
const wal = typeof config === "string" ? true : config.wal ?? true;
|
|
26
|
+
this.db = new Database(path);
|
|
27
|
+
if (wal) this.db.run("PRAGMA journal_mode = WAL");
|
|
28
|
+
this.db.run("PRAGMA foreign_keys = ON");
|
|
29
|
+
}
|
|
30
|
+
_prepare(sql) {
|
|
31
|
+
const cached = this._stmtCache.get(sql);
|
|
32
|
+
if (cached) {
|
|
33
|
+
this._stmtCache.delete(sql);
|
|
34
|
+
this._stmtCache.set(sql, cached);
|
|
35
|
+
return cached;
|
|
36
|
+
}
|
|
37
|
+
if (this._stmtCache.size >= STMT_CACHE_MAX) {
|
|
38
|
+
const oldest = this._stmtCache.keys().next().value;
|
|
39
|
+
if (oldest !== void 0) this._stmtCache.delete(oldest);
|
|
40
|
+
}
|
|
41
|
+
const stmt = this.db.prepare(sql);
|
|
42
|
+
this._stmtCache.set(sql, stmt);
|
|
43
|
+
return stmt;
|
|
44
|
+
}
|
|
45
|
+
async query(sql, params = []) {
|
|
46
|
+
const t0 = performance.now();
|
|
47
|
+
const stmt = this._prepare(sql);
|
|
48
|
+
const rows = stmt.all(...params);
|
|
49
|
+
this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: "query" });
|
|
50
|
+
return rows;
|
|
51
|
+
}
|
|
52
|
+
async execute(sql, params = []) {
|
|
53
|
+
const t0 = performance.now();
|
|
54
|
+
const stmt = this._prepare(sql);
|
|
55
|
+
const result = stmt.run(...params);
|
|
56
|
+
this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: "execute" });
|
|
57
|
+
const rowsAffected = typeof result.changes === "bigint" ? Number(result.changes) : result.changes;
|
|
58
|
+
return {
|
|
59
|
+
rowsAffected,
|
|
60
|
+
lastInsertId: result.lastInsertRowid
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async transaction(fn) {
|
|
64
|
+
this.db.run("BEGIN");
|
|
65
|
+
try {
|
|
66
|
+
const result = await fn(this);
|
|
67
|
+
this.db.run("COMMIT");
|
|
68
|
+
return result;
|
|
69
|
+
} catch (err) {
|
|
70
|
+
this.db.run("ROLLBACK");
|
|
71
|
+
throw err;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async close() {
|
|
75
|
+
this.db.close();
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
export {
|
|
82
|
+
SQLiteAdapter,
|
|
83
|
+
sqlite_exports,
|
|
84
|
+
init_sqlite
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=chunk-7C6SKWY7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/adapter/sqlite.ts"],"sourcesContent":["import { Database } from 'bun:sqlite'\nimport type { VelnAdapter, BindingValue, ExecuteResult, QueryLogEntry } from './types'\n\nexport interface SQLiteConfig {\n path?: string // default ':memory:'\n wal?: boolean // default true\n}\n\n// Maximum number of prepared statements cached per adapter instance.\n// Prevents unbounded memory growth when queries are dynamically constructed.\nconst STMT_CACHE_MAX = 500\n\nexport class SQLiteAdapter implements VelnAdapter {\n private readonly db: Database\n // LRU cache for prepared statements — Map preserves insertion order.\n // On cache hit: entry is moved to end (most recently used).\n // On cache full: oldest entry (front of Map) is evicted before inserting.\n private readonly _stmtCache = new Map<string, ReturnType<Database['prepare']>>()\n onQuery?: (entry: QueryLogEntry) => void\n\n constructor(config: SQLiteConfig | string = {}) {\n const path = typeof config === 'string' ? config : (config.path ?? ':memory:')\n const wal = typeof config === 'string' ? true : (config.wal ?? true)\n\n this.db = new Database(path)\n if (wal) this.db.run('PRAGMA journal_mode = WAL')\n this.db.run('PRAGMA foreign_keys = ON')\n }\n\n private _prepare(sql: string): ReturnType<Database['prepare']> {\n const cached = this._stmtCache.get(sql)\n if (cached) {\n // LRU: move to end (most recently used)\n this._stmtCache.delete(sql)\n this._stmtCache.set(sql, cached)\n return cached\n }\n // Evict oldest entry if at capacity\n if (this._stmtCache.size >= STMT_CACHE_MAX) {\n const oldest = this._stmtCache.keys().next().value\n if (oldest !== undefined) this._stmtCache.delete(oldest)\n }\n const stmt = this.db.prepare(sql)\n this._stmtCache.set(sql, stmt)\n return stmt\n }\n\n async query<T>(sql: string, params: BindingValue[] = []): Promise<T[]> {\n const t0 = performance.now()\n const stmt = this._prepare(sql)\n const rows = stmt.all(...params) as T[]\n this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: 'query' })\n return rows\n }\n\n async execute(sql: string, params: BindingValue[] = []): Promise<ExecuteResult> {\n const t0 = performance.now()\n const stmt = this._prepare(sql)\n const result = stmt.run(...params)\n this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: 'execute' })\n // result.changes and lastInsertRowid can be bigint in some bun:sqlite versions\n const rowsAffected = typeof result.changes === 'bigint'\n ? Number(result.changes)\n : result.changes\n return {\n rowsAffected,\n lastInsertId: result.lastInsertRowid,\n }\n }\n\n async transaction<T>(fn: (tx: VelnAdapter) => Promise<T>): Promise<T> {\n // Use db.run() directly — prepared statements for control statements (BEGIN/COMMIT/ROLLBACK)\n // are not reliable in SQLite; db.run() is the correct low-level API for these.\n this.db.run('BEGIN')\n try {\n const result = await fn(this)\n this.db.run('COMMIT')\n return result\n } catch (err) {\n this.db.run('ROLLBACK')\n throw err\n }\n }\n\n async close(): Promise<void> {\n this.db.close()\n }\n}\n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,gBAAgB;AAAzB,IAUM,gBAEO;AAZb;AAAA;AAUA,IAAM,iBAAiB;AAEhB,IAAM,gBAAN,MAA2C;AAAA,MAC/B;AAAA;AAAA;AAAA;AAAA,MAIA,aAAa,oBAAI,IAA6C;AAAA,MAC/E;AAAA,MAEA,YAAY,SAAgC,CAAC,GAAG;AAC9C,cAAM,OAAO,OAAO,WAAW,WAAW,SAAU,OAAO,QAAQ;AACnE,cAAM,MAAO,OAAO,WAAW,WAAW,OAAU,OAAO,OAAQ;AAEnE,aAAK,KAAK,IAAI,SAAS,IAAI;AAC3B,YAAI,IAAK,MAAK,GAAG,IAAI,2BAA2B;AAChD,aAAK,GAAG,IAAI,0BAA0B;AAAA,MACxC;AAAA,MAEQ,SAAS,KAA8C;AAC7D,cAAM,SAAS,KAAK,WAAW,IAAI,GAAG;AACtC,YAAI,QAAQ;AAEV,eAAK,WAAW,OAAO,GAAG;AAC1B,eAAK,WAAW,IAAI,KAAK,MAAM;AAC/B,iBAAO;AAAA,QACT;AAEA,YAAI,KAAK,WAAW,QAAQ,gBAAgB;AAC1C,gBAAM,SAAS,KAAK,WAAW,KAAK,EAAE,KAAK,EAAE;AAC7C,cAAI,WAAW,OAAW,MAAK,WAAW,OAAO,MAAM;AAAA,QACzD;AACA,cAAM,OAAO,KAAK,GAAG,QAAQ,GAAG;AAChC,aAAK,WAAW,IAAI,KAAK,IAAI;AAC7B,eAAO;AAAA,MACT;AAAA,MAEA,MAAM,MAAS,KAAa,SAAyB,CAAC,GAAiB;AACrE,cAAM,KAAK,YAAY,IAAI;AAC3B,cAAM,OAAO,KAAK,SAAS,GAAG;AAC9B,cAAM,OAAO,KAAK,IAAI,GAAG,MAAM;AAC/B,aAAK,UAAU,EAAE,KAAK,QAAQ,YAAY,YAAY,IAAI,IAAI,IAAI,MAAM,QAAQ,CAAC;AACjF,eAAO;AAAA,MACT;AAAA,MAEA,MAAM,QAAQ,KAAa,SAAyB,CAAC,GAA2B;AAC9E,cAAM,KAAK,YAAY,IAAI;AAC3B,cAAM,OAAO,KAAK,SAAS,GAAG;AAC9B,cAAM,SAAS,KAAK,IAAI,GAAG,MAAM;AACjC,aAAK,UAAU,EAAE,KAAK,QAAQ,YAAY,YAAY,IAAI,IAAI,IAAI,MAAM,UAAU,CAAC;AAEnF,cAAM,eAAe,OAAO,OAAO,YAAY,WAC3C,OAAO,OAAO,OAAO,IACrB,OAAO;AACX,eAAO;AAAA,UACL;AAAA,UACA,cAAc,OAAO;AAAA,QACvB;AAAA,MACF;AAAA,MAEA,MAAM,YAAe,IAAiD;AAGpE,aAAK,GAAG,IAAI,OAAO;AACnB,YAAI;AACF,gBAAM,SAAS,MAAM,GAAG,IAAI;AAC5B,eAAK,GAAG,IAAI,QAAQ;AACpB,iBAAO;AAAA,QACT,SAAS,KAAK;AACZ,eAAK,GAAG,IAAI,UAAU;AACtB,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,MAEA,MAAM,QAAuB;AAC3B,aAAK,GAAG,MAAM;AAAA,MAChB;AAAA,IACF;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__esm,
|
|
3
|
+
__export
|
|
4
|
+
} from "./chunk-Z6ZWNWWR.js";
|
|
5
|
+
|
|
6
|
+
// src/adapter/mysql.ts
|
|
7
|
+
var mysql_exports = {};
|
|
8
|
+
__export(mysql_exports, {
|
|
9
|
+
MySQLAdapter: () => MySQLAdapter
|
|
10
|
+
});
|
|
11
|
+
var MySQLAdapter;
|
|
12
|
+
var init_mysql = __esm({
|
|
13
|
+
"src/adapter/mysql.ts"() {
|
|
14
|
+
MySQLAdapter = class {
|
|
15
|
+
// Typed as any: Bun.SQL's instance type is not reliably exported across
|
|
16
|
+
// bun-types versions and the class is a Bun global — no stable import path.
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
sql;
|
|
19
|
+
onQuery;
|
|
20
|
+
constructor(config) {
|
|
21
|
+
if (config.max !== void 0 && config.max < 1) {
|
|
22
|
+
throw new Error(`MySQLAdapter: max connections must be at least 1, got ${config.max}`);
|
|
23
|
+
}
|
|
24
|
+
this.sql = new Bun.SQL({
|
|
25
|
+
url: config.url,
|
|
26
|
+
hostname: config.hostname,
|
|
27
|
+
port: config.port,
|
|
28
|
+
database: config.database,
|
|
29
|
+
username: config.username,
|
|
30
|
+
password: config.password,
|
|
31
|
+
max: config.max ?? 10,
|
|
32
|
+
idleTimeout: config.idleTimeout ?? 30
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
async query(sql, params = []) {
|
|
36
|
+
const t0 = performance.now();
|
|
37
|
+
const rows = await this.sql.unsafe(sql, params);
|
|
38
|
+
this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: "query" });
|
|
39
|
+
return rows;
|
|
40
|
+
}
|
|
41
|
+
async execute(sql, params = []) {
|
|
42
|
+
const t0 = performance.now();
|
|
43
|
+
const result = await this.sql.unsafe(sql, params);
|
|
44
|
+
this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: "execute" });
|
|
45
|
+
const rowsAffected = typeof result?.count === "number" ? result.count : result?.length ?? 0;
|
|
46
|
+
return { rowsAffected };
|
|
47
|
+
}
|
|
48
|
+
async transaction(fn) {
|
|
49
|
+
return this.sql.begin(async (tx) => {
|
|
50
|
+
const txAdapter = {
|
|
51
|
+
query: (s, p = []) => tx.unsafe(s, p),
|
|
52
|
+
execute: async (s, p = []) => {
|
|
53
|
+
const r = await tx.unsafe(s, p);
|
|
54
|
+
const rowsAffected = typeof r?.count === "number" ? r.count : r?.length ?? 0;
|
|
55
|
+
return { rowsAffected };
|
|
56
|
+
},
|
|
57
|
+
transaction: (innerFn) => innerFn(txAdapter),
|
|
58
|
+
// nested: reuse same tx
|
|
59
|
+
close: async () => {
|
|
60
|
+
}
|
|
61
|
+
// no-op inside transaction
|
|
62
|
+
};
|
|
63
|
+
return fn(txAdapter);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async close() {
|
|
67
|
+
await this.sql.end?.();
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
export {
|
|
74
|
+
MySQLAdapter,
|
|
75
|
+
mysql_exports,
|
|
76
|
+
init_mysql
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=chunk-7PGCL2E7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/adapter/mysql.ts"],"sourcesContent":["import type { VelnAdapter, BindingValue, ExecuteResult, QueryLogEntry } from './types'\n\nexport interface MySQLConfig {\n url?: string\n hostname?: string\n port?: number\n database?: string\n username?: string\n password?: string\n max?: number\n idleTimeout?: number\n}\n\nexport class MySQLAdapter implements VelnAdapter {\n // Typed as any: Bun.SQL's instance type is not reliably exported across\n // bun-types versions and the class is a Bun global — no stable import path.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly sql: any\n onQuery?: (entry: QueryLogEntry) => void\n\n constructor(config: MySQLConfig) {\n if (config.max !== undefined && config.max < 1) {\n throw new Error(`MySQLAdapter: max connections must be at least 1, got ${config.max}`)\n }\n // @ts-ignore — Bun.SQL is a Bun global constructor, supports both MySQL and Postgres\n this.sql = new Bun.SQL({\n url: config.url,\n hostname: config.hostname,\n port: config.port,\n database: config.database,\n username: config.username,\n password: config.password,\n max: config.max ?? 10,\n idleTimeout: config.idleTimeout ?? 30,\n })\n }\n\n async query<T>(sql: string, params: BindingValue[] = []): Promise<T[]> {\n const t0 = performance.now()\n // Bun.SQL .unsafe() handles both MySQL (?) and Postgres ($1) placeholders\n const rows = await this.sql.unsafe(sql, params) as T[]\n this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: 'query' })\n return rows\n }\n\n async execute(sql: string, params: BindingValue[] = []): Promise<ExecuteResult> {\n const t0 = performance.now()\n const result = await this.sql.unsafe(sql, params)\n this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: 'execute' })\n const rowsAffected = typeof result?.count === 'number' ? result.count : (result?.length ?? 0)\n return { rowsAffected } // lastInsertId not available without explicit query\n }\n\n async transaction<T>(fn: (tx: VelnAdapter) => Promise<T>): Promise<T> {\n return this.sql.begin(async (tx: any) => {\n const txAdapter: VelnAdapter = {\n query: (s, p = []) => tx.unsafe(s, p),\n execute: async (s, p = []) => {\n const r = await tx.unsafe(s, p)\n const rowsAffected = typeof r?.count === 'number' ? r.count : (r?.length ?? 0)\n return { rowsAffected }\n },\n transaction: (innerFn) => innerFn(txAdapter), // nested: reuse same tx\n close: async () => {}, // no-op inside transaction\n }\n return fn(txAdapter)\n })\n }\n\n async close(): Promise<void> {\n await this.sql.end?.()\n }\n}\n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA,IAaa;AAbb;AAAA;AAaO,IAAM,eAAN,MAA0C;AAAA;AAAA;AAAA;AAAA,MAI9B;AAAA,MACjB;AAAA,MAEA,YAAY,QAAqB;AAC/B,YAAI,OAAO,QAAQ,UAAa,OAAO,MAAM,GAAG;AAC9C,gBAAM,IAAI,MAAM,yDAAyD,OAAO,GAAG,EAAE;AAAA,QACvF;AAEA,aAAK,MAAM,IAAI,IAAI,IAAI;AAAA,UACrB,KAAa,OAAO;AAAA,UACpB,UAAa,OAAO;AAAA,UACpB,MAAa,OAAO;AAAA,UACpB,UAAa,OAAO;AAAA,UACpB,UAAa,OAAO;AAAA,UACpB,UAAa,OAAO;AAAA,UACpB,KAAa,OAAO,OAAO;AAAA,UAC3B,aAAa,OAAO,eAAe;AAAA,QACrC,CAAC;AAAA,MACH;AAAA,MAEA,MAAM,MAAS,KAAa,SAAyB,CAAC,GAAiB;AACrE,cAAM,KAAK,YAAY,IAAI;AAE3B,cAAM,OAAO,MAAM,KAAK,IAAI,OAAO,KAAK,MAAM;AAC9C,aAAK,UAAU,EAAE,KAAK,QAAQ,YAAY,YAAY,IAAI,IAAI,IAAI,MAAM,QAAQ,CAAC;AACjF,eAAO;AAAA,MACT;AAAA,MAEA,MAAM,QAAQ,KAAa,SAAyB,CAAC,GAA2B;AAC9E,cAAM,KAAK,YAAY,IAAI;AAC3B,cAAM,SAAS,MAAM,KAAK,IAAI,OAAO,KAAK,MAAM;AAChD,aAAK,UAAU,EAAE,KAAK,QAAQ,YAAY,YAAY,IAAI,IAAI,IAAI,MAAM,UAAU,CAAC;AACnF,cAAM,eAAe,OAAO,QAAQ,UAAU,WAAW,OAAO,QAAS,QAAQ,UAAU;AAC3F,eAAO,EAAE,aAAa;AAAA,MACxB;AAAA,MAEA,MAAM,YAAe,IAAiD;AACpE,eAAO,KAAK,IAAI,MAAM,OAAO,OAAY;AACvC,gBAAM,YAAyB;AAAA,YAC7B,OAAa,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC;AAAA,YAC1C,SAAa,OAAO,GAAG,IAAI,CAAC,MAAM;AAChC,oBAAM,IAAI,MAAM,GAAG,OAAO,GAAG,CAAC;AAC9B,oBAAM,eAAe,OAAO,GAAG,UAAU,WAAW,EAAE,QAAS,GAAG,UAAU;AAC5E,qBAAO,EAAE,aAAa;AAAA,YACxB;AAAA,YACA,aAAa,CAAC,YAAY,QAAQ,SAAS;AAAA;AAAA,YAC3C,OAAa,YAAY;AAAA,YAAC;AAAA;AAAA,UAC5B;AACA,iBAAO,GAAG,SAAS;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,MAEA,MAAM,QAAuB;AAC3B,cAAM,KAAK,IAAI,MAAM;AAAA,MACvB;AAAA,IACF;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import {
|
|
3
|
+
__esm,
|
|
4
|
+
__export
|
|
5
|
+
} from "./chunk-FJSYS3BT.js";
|
|
6
|
+
|
|
7
|
+
// src/adapter/sqlite.ts
|
|
8
|
+
var sqlite_exports = {};
|
|
9
|
+
__export(sqlite_exports, {
|
|
10
|
+
SQLiteAdapter: () => SQLiteAdapter
|
|
11
|
+
});
|
|
12
|
+
import { Database } from "bun:sqlite";
|
|
13
|
+
var STMT_CACHE_MAX, SQLiteAdapter;
|
|
14
|
+
var init_sqlite = __esm({
|
|
15
|
+
"src/adapter/sqlite.ts"() {
|
|
16
|
+
STMT_CACHE_MAX = 500;
|
|
17
|
+
SQLiteAdapter = class {
|
|
18
|
+
db;
|
|
19
|
+
// LRU cache for prepared statements — Map preserves insertion order.
|
|
20
|
+
// On cache hit: entry is moved to end (most recently used).
|
|
21
|
+
// On cache full: oldest entry (front of Map) is evicted before inserting.
|
|
22
|
+
_stmtCache = /* @__PURE__ */ new Map();
|
|
23
|
+
onQuery;
|
|
24
|
+
constructor(config = {}) {
|
|
25
|
+
const path = typeof config === "string" ? config : config.path ?? ":memory:";
|
|
26
|
+
const wal = typeof config === "string" ? true : config.wal ?? true;
|
|
27
|
+
this.db = new Database(path);
|
|
28
|
+
if (wal) this.db.run("PRAGMA journal_mode = WAL");
|
|
29
|
+
this.db.run("PRAGMA foreign_keys = ON");
|
|
30
|
+
}
|
|
31
|
+
_prepare(sql) {
|
|
32
|
+
const cached = this._stmtCache.get(sql);
|
|
33
|
+
if (cached) {
|
|
34
|
+
this._stmtCache.delete(sql);
|
|
35
|
+
this._stmtCache.set(sql, cached);
|
|
36
|
+
return cached;
|
|
37
|
+
}
|
|
38
|
+
if (this._stmtCache.size >= STMT_CACHE_MAX) {
|
|
39
|
+
const oldest = this._stmtCache.keys().next().value;
|
|
40
|
+
if (oldest !== void 0) this._stmtCache.delete(oldest);
|
|
41
|
+
}
|
|
42
|
+
const stmt = this.db.prepare(sql);
|
|
43
|
+
this._stmtCache.set(sql, stmt);
|
|
44
|
+
return stmt;
|
|
45
|
+
}
|
|
46
|
+
async query(sql, params = []) {
|
|
47
|
+
const t0 = performance.now();
|
|
48
|
+
const stmt = this._prepare(sql);
|
|
49
|
+
const rows = stmt.all(...params);
|
|
50
|
+
this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: "query" });
|
|
51
|
+
return rows;
|
|
52
|
+
}
|
|
53
|
+
async execute(sql, params = []) {
|
|
54
|
+
const t0 = performance.now();
|
|
55
|
+
const stmt = this._prepare(sql);
|
|
56
|
+
const result = stmt.run(...params);
|
|
57
|
+
this.onQuery?.({ sql, params, durationMs: performance.now() - t0, type: "execute" });
|
|
58
|
+
const rowsAffected = typeof result.changes === "bigint" ? Number(result.changes) : result.changes;
|
|
59
|
+
return {
|
|
60
|
+
rowsAffected,
|
|
61
|
+
lastInsertId: result.lastInsertRowid
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
async transaction(fn) {
|
|
65
|
+
this.db.run("BEGIN");
|
|
66
|
+
try {
|
|
67
|
+
const result = await fn(this);
|
|
68
|
+
this.db.run("COMMIT");
|
|
69
|
+
return result;
|
|
70
|
+
} catch (err) {
|
|
71
|
+
this.db.run("ROLLBACK");
|
|
72
|
+
throw err;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async close() {
|
|
76
|
+
this.db.close();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
export {
|
|
83
|
+
SQLiteAdapter,
|
|
84
|
+
sqlite_exports,
|
|
85
|
+
init_sqlite
|
|
86
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __esm = (fn, res) => function __init() {
|
|
7
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
8
|
+
};
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
__esm,
|
|
25
|
+
__export,
|
|
26
|
+
__toCommonJS
|
|
27
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
|
|
3
|
+
// src/events/index.ts
|
|
4
|
+
var RequestEventQueue = class {
|
|
5
|
+
buffer = [];
|
|
6
|
+
collect(name, payload) {
|
|
7
|
+
this.buffer.push({ name, payload });
|
|
8
|
+
}
|
|
9
|
+
async flush(ctx, bus) {
|
|
10
|
+
const events = this.buffer.splice(0);
|
|
11
|
+
for (const e of events) {
|
|
12
|
+
if ("_emit" in bus) {
|
|
13
|
+
bus._emit(e.name, e.payload, ctx);
|
|
14
|
+
} else {
|
|
15
|
+
await bus.emit(e.name, e.payload);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Drain — returns collected events and clears the buffer.
|
|
20
|
+
* Used by the TX path to hand events off to TransactionResult. */
|
|
21
|
+
drain() {
|
|
22
|
+
return this.buffer.splice(0);
|
|
23
|
+
}
|
|
24
|
+
/** Number of buffered events — useful in tests. */
|
|
25
|
+
get size() {
|
|
26
|
+
return this.buffer.length;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
var InMemoryEventBus = class {
|
|
30
|
+
handlers = /* @__PURE__ */ new Map();
|
|
31
|
+
_onError;
|
|
32
|
+
constructor(options) {
|
|
33
|
+
this._onError = options?.onError ?? ((event, err) => console.error(`[EventBus] Error in handler for "${event}":`, err));
|
|
34
|
+
}
|
|
35
|
+
on(event, handler) {
|
|
36
|
+
if (!this.handlers.has(event)) this.handlers.set(event, []);
|
|
37
|
+
this.handlers.get(event).push(handler);
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
// _emit — internal. fire & forget — errors in handlers are caught by onError, never thrown.
|
|
41
|
+
// Only HookExecutor and flush() call this. Underscore signals "not for user-code".
|
|
42
|
+
_emit(event, payload, ctx) {
|
|
43
|
+
const handlers = this.handlers.get(event) ?? [];
|
|
44
|
+
for (const h of handlers) {
|
|
45
|
+
new Promise((resolve) => resolve(h(payload, ctx))).catch(
|
|
46
|
+
(err) => this._onError(event, err)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// EventBusAdapter.emit — ctx-free emit for external adapter compatibility.
|
|
51
|
+
// Calls _emit with undefined ctx — handlers that need ctx are registered via on() directly.
|
|
52
|
+
async emit(event, payload) {
|
|
53
|
+
this._emit(event, payload, void 0);
|
|
54
|
+
}
|
|
55
|
+
// flush pending events after transaction commit
|
|
56
|
+
async flush(events, ctx) {
|
|
57
|
+
for (const e of events) {
|
|
58
|
+
this._emit(e.name, e.payload, ctx);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
var EventBus = InMemoryEventBus;
|
|
63
|
+
|
|
64
|
+
export {
|
|
65
|
+
RequestEventQueue,
|
|
66
|
+
InMemoryEventBus,
|
|
67
|
+
EventBus
|
|
68
|
+
};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
|
|
3
|
+
// src/app/logger.ts
|
|
4
|
+
var LEVEL_ORDER = {
|
|
5
|
+
debug: 0,
|
|
6
|
+
info: 1,
|
|
7
|
+
warn: 2,
|
|
8
|
+
error: 3
|
|
9
|
+
};
|
|
10
|
+
var RESET = "\x1B[0m";
|
|
11
|
+
var DIM = "\x1B[2m";
|
|
12
|
+
var SCOPE_COLORS = {
|
|
13
|
+
service: "\x1B[34m",
|
|
14
|
+
// Blue
|
|
15
|
+
model: "\x1B[36m",
|
|
16
|
+
// Cyan
|
|
17
|
+
plugin: "\x1B[35m",
|
|
18
|
+
// Magenta
|
|
19
|
+
cron: "\x1B[33m",
|
|
20
|
+
// Yellow
|
|
21
|
+
guard: "\x1B[31m",
|
|
22
|
+
// Red
|
|
23
|
+
middleware: "\x1B[32m",
|
|
24
|
+
// Green
|
|
25
|
+
event: "\x1B[38;5;208m",
|
|
26
|
+
// Orange
|
|
27
|
+
module: "\x1B[34m",
|
|
28
|
+
// Blue
|
|
29
|
+
resource: "\x1B[36m"
|
|
30
|
+
// Cyan
|
|
31
|
+
};
|
|
32
|
+
var LEVEL_COLORS = {
|
|
33
|
+
debug: "\x1B[2m",
|
|
34
|
+
// Dim
|
|
35
|
+
info: "",
|
|
36
|
+
// No extra color — scope is enough
|
|
37
|
+
warn: "\x1B[33m",
|
|
38
|
+
// Yellow
|
|
39
|
+
error: "\x1B[31m"
|
|
40
|
+
// Red
|
|
41
|
+
};
|
|
42
|
+
var isTTY = process.stdout.isTTY ?? false;
|
|
43
|
+
function colorScope(scope) {
|
|
44
|
+
if (!isTTY) return `[${scope}]`;
|
|
45
|
+
const prefix = scope.split(":")[0];
|
|
46
|
+
const color = SCOPE_COLORS[prefix] ?? "";
|
|
47
|
+
return `${color}[${scope}]${RESET}`;
|
|
48
|
+
}
|
|
49
|
+
function formatData(data, maskKeys) {
|
|
50
|
+
const entries = Object.entries(data);
|
|
51
|
+
if (entries.length === 0) return "";
|
|
52
|
+
const masked = entries.map(([k, v]) => [
|
|
53
|
+
k,
|
|
54
|
+
maskKeys.has(k.toLowerCase()) ? "***" : v
|
|
55
|
+
]);
|
|
56
|
+
if (masked.length <= 3) {
|
|
57
|
+
const inline = masked.map(([k, v]) => isTTY ? `${DIM}${k}${RESET}=${JSON.stringify(v)}` : `${k}=${JSON.stringify(v)}`).join(" ");
|
|
58
|
+
return ` ${inline}`;
|
|
59
|
+
}
|
|
60
|
+
const lines = masked.map(([k, v]) => isTTY ? ` ${DIM}${k}${RESET}=${JSON.stringify(v)}` : ` ${k}=${JSON.stringify(v)}`).join("\n");
|
|
61
|
+
return `
|
|
62
|
+
${lines}`;
|
|
63
|
+
}
|
|
64
|
+
function createMinimalLogger(scope, opts) {
|
|
65
|
+
if (opts?.silent) return noopLogger();
|
|
66
|
+
const minLevel = LEVEL_ORDER[opts?.level ?? "info"];
|
|
67
|
+
const maskKeys = new Set((opts?.mask ?? []).map((k) => k.toLowerCase()));
|
|
68
|
+
const scopeLabel = colorScope(scope);
|
|
69
|
+
function log(method, msg, args) {
|
|
70
|
+
if (LEVEL_ORDER[method] < minLevel) return;
|
|
71
|
+
const [first, ...rest] = args;
|
|
72
|
+
const isDataObj = first !== null && first !== void 0 && typeof first === "object" && !Array.isArray(first);
|
|
73
|
+
const dataStr = isDataObj ? formatData(first, maskKeys) : "";
|
|
74
|
+
const levelColor = isTTY ? LEVEL_COLORS[method] : "";
|
|
75
|
+
const msgPart = levelColor ? `${levelColor}${msg}${RESET}` : msg;
|
|
76
|
+
const line = `${scopeLabel} ${msgPart}${dataStr}`;
|
|
77
|
+
const extra = isDataObj ? rest : args;
|
|
78
|
+
if (method === "error") {
|
|
79
|
+
console.error(line, ...extra);
|
|
80
|
+
} else if (method === "warn") {
|
|
81
|
+
console.warn(line, ...extra);
|
|
82
|
+
} else {
|
|
83
|
+
console.log(line, ...extra);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
info(msg, ...args) {
|
|
88
|
+
log("info", msg, args);
|
|
89
|
+
},
|
|
90
|
+
warn(msg, ...args) {
|
|
91
|
+
log("warn", msg, args);
|
|
92
|
+
},
|
|
93
|
+
error(msg, ...args) {
|
|
94
|
+
log("error", msg, args);
|
|
95
|
+
},
|
|
96
|
+
debug(msg, ...args) {
|
|
97
|
+
log("debug", msg, args);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function noopLogger() {
|
|
102
|
+
return {
|
|
103
|
+
debug: () => {
|
|
104
|
+
},
|
|
105
|
+
info: () => {
|
|
106
|
+
},
|
|
107
|
+
warn: () => {
|
|
108
|
+
},
|
|
109
|
+
error: () => {
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export {
|
|
115
|
+
createMinimalLogger
|
|
116
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
6
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
7
|
+
}) : x)(function(x) {
|
|
8
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
9
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
10
|
+
});
|
|
11
|
+
var __esm = (fn, res) => function __init() {
|
|
12
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
13
|
+
};
|
|
14
|
+
var __export = (target, all) => {
|
|
15
|
+
for (var name in all)
|
|
16
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
+
};
|
|
18
|
+
var __copyProps = (to, from, except, desc) => {
|
|
19
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
+
for (let key of __getOwnPropNames(from))
|
|
21
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
+
}
|
|
24
|
+
return to;
|
|
25
|
+
};
|
|
26
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
__require,
|
|
30
|
+
__esm,
|
|
31
|
+
__export,
|
|
32
|
+
__toCommonJS
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=chunk-Z6ZWNWWR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":""}
|