@hasna/economy 0.2.41 → 0.2.43
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/CHANGELOG.md +8 -0
- package/dist/cli/commands/extras.d.ts.map +1 -1
- package/dist/cli/index.js +705 -87
- package/dist/db/cloud.d.ts +28 -0
- package/dist/db/cloud.d.ts.map +1 -0
- package/dist/db/database.d.ts +4 -3
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/pg-sync-worker.d.ts +2 -0
- package/dist/db/pg-sync-worker.d.ts.map +1 -0
- package/dist/db/sync-pg.d.ts +23 -0
- package/dist/db/sync-pg.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +299 -49
- package/dist/lib/fleet-sync.d.ts +61 -0
- package/dist/lib/fleet-sync.d.ts.map +1 -0
- package/dist/mcp/index.js +66 -16
- package/dist/openapi.d.ts +3 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/otel/index.js +41 -5
- package/dist/server/index.js +456 -44
- package/dist/server/pg-sync-worker.js +31 -0
- package/dist/server/serve.d.ts +31 -1
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/storage.js +2746 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +7 -4
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/db/pg-sync-worker.ts
|
|
3
|
+
import { parentPort, workerData } from "worker_threads";
|
|
4
|
+
import pg from "pg";
|
|
5
|
+
pg.types.setTypeParser(20, (v) => v === null ? null : Number(v));
|
|
6
|
+
pg.types.setTypeParser(1700, (v) => v === null ? null : Number(v));
|
|
7
|
+
var dsn = workerData?.dsn;
|
|
8
|
+
var ssl = dsn && (dsn.includes("sslmode=require") || dsn.includes("ssl=true")) ? { rejectUnauthorized: false } : undefined;
|
|
9
|
+
var pool = new pg.Pool({
|
|
10
|
+
connectionString: dsn,
|
|
11
|
+
ssl,
|
|
12
|
+
max: Number(process.env["ECONOMY_PG_POOL_MAX"] ?? "5"),
|
|
13
|
+
connectionTimeoutMillis: 1e4
|
|
14
|
+
});
|
|
15
|
+
pool.on("error", (err) => {
|
|
16
|
+
console.error(JSON.stringify({ evt: "pg_worker_pool_error", message: err.message }));
|
|
17
|
+
});
|
|
18
|
+
var replyPort = null;
|
|
19
|
+
parentPort?.on("message", (msg) => {
|
|
20
|
+
if (msg.type === "init") {
|
|
21
|
+
replyPort = msg.port;
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const { id, sql, params, signal } = msg;
|
|
25
|
+
const sig = new Int32Array(signal);
|
|
26
|
+
pool.query(sql, params).then((res) => ({ id, ok: true, rows: res.rows, rowCount: res.rowCount ?? 0 })).catch((err) => ({ id, ok: false, error: err instanceof Error ? err.message : String(err) })).then((response) => {
|
|
27
|
+
replyPort?.postMessage(response);
|
|
28
|
+
Atomics.store(sig, 0, 1);
|
|
29
|
+
Atomics.notify(sig, 0);
|
|
30
|
+
});
|
|
31
|
+
});
|
package/dist/server/serve.d.ts
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import type { SqliteAdapter as Database } from '@hasna/cloud';
|
|
2
|
+
/** The serve OpenAPI document (source of the generated SDK), version-synced. */
|
|
3
|
+
export declare function openApiDocument(): Record<string, unknown>;
|
|
4
|
+
/**
|
|
5
|
+
* Framework-agnostic API-key verifier shape (matches `@hasna/contracts/auth`
|
|
6
|
+
* `ApiKeyVerifier`). Kept structural so serve.ts has no hard dependency on the
|
|
7
|
+
* auth package; the entry point injects the real verifier.
|
|
8
|
+
*/
|
|
9
|
+
export interface ApiAuthenticator {
|
|
10
|
+
authenticate(headers: Headers, context?: {
|
|
11
|
+
method?: string | null;
|
|
12
|
+
path?: string | null;
|
|
13
|
+
requiredScopes?: readonly string[];
|
|
14
|
+
}): Promise<{
|
|
15
|
+
ok: boolean;
|
|
16
|
+
status: number;
|
|
17
|
+
reason?: string;
|
|
18
|
+
message?: string;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
2
21
|
interface StartServerOptions {
|
|
3
22
|
db?: Database;
|
|
4
23
|
dashboardDir?: string;
|
|
@@ -6,7 +25,18 @@ interface StartServerOptions {
|
|
|
6
25
|
log?: (message: string) => void;
|
|
7
26
|
}
|
|
8
27
|
export declare function createServerFetch(apiHandler: (req: Request) => Promise<Response>, dashboardDir?: string): (req: Request) => Promise<Response>;
|
|
9
|
-
export
|
|
28
|
+
export interface HandlerOptions {
|
|
29
|
+
/** API-key verifier (from `@hasna/contracts/auth`). When present, every
|
|
30
|
+
* request outside the open foundation probes must present a valid
|
|
31
|
+
* `economy:*` scoped key. This is the internet-facing auth path. */
|
|
32
|
+
authenticator?: ApiAuthenticator;
|
|
33
|
+
/** Readiness probe proving storage is reachable + migrated. */
|
|
34
|
+
readyCheck?: () => Promise<{
|
|
35
|
+
ready: boolean;
|
|
36
|
+
detail?: string;
|
|
37
|
+
}>;
|
|
38
|
+
}
|
|
39
|
+
export declare function createHandler(db: Database, options?: HandlerOptions): (req: Request) => Promise<Response>;
|
|
10
40
|
export declare function startServer(port?: number, options?: StartServerOptions): ReturnType<typeof Bun.serve>;
|
|
11
41
|
export {};
|
|
12
42
|
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAA;AAkC7D,gFAAgF;AAChF,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzD;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CACV,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAC7F,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/E;AAqBD,UAAU,kBAAkB;IAC1B,EAAE,CAAC,EAAE,QAAQ,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC;AAuED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,YAAY,SAAwB,IACzF,KAAK,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAwB7D;AAQD,MAAM,WAAW,cAAc;IAC7B;;wEAEoE;IACpE,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,cAAmB,IACxC,KAAK,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAmZ/D;AAQD,wBAAgB,WAAW,CAAC,IAAI,SAAO,EAAE,OAAO,GAAE,kBAAuB,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAkDvG"}
|