@hasna/economy 0.4.0 → 0.5.1
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 +31 -0
- package/README.md +12 -9
- package/dist/chunks/agent-registry-store-tpnhx3wj.js +39 -0
- package/dist/chunks/billing-bkpxy4kv.js +13 -0
- package/dist/chunks/config-j9mv3ehk.js +15 -0
- package/dist/chunks/index-2hwzmfgv.js +3407 -0
- package/dist/chunks/index-49f12css.js +124 -0
- package/dist/chunks/index-d480p2wh.js +1322 -0
- package/dist/chunks/index-ez9thsr7.js +3440 -0
- package/dist/chunks/index-hesxq90g.js +62 -0
- package/dist/chunks/index-k540hfww.js +258 -0
- package/dist/chunks/index-p35cyhc4.js +4 -0
- package/dist/chunks/index-r1jv3kpy.js +451 -0
- package/dist/chunks/index-w3bvv0ns.js +26 -0
- package/dist/chunks/index-xsah93s2.js +2085 -0
- package/dist/chunks/index-zpvea08j.js +3372 -0
- package/dist/chunks/menubar-6xtkt17h.js +296 -0
- package/dist/chunks/open-projects-6z4pq6mx.js +39 -0
- package/dist/chunks/pricing-f80p81gr.js +29 -0
- package/dist/chunks/pricing-vf2pycmh.js +30 -0
- package/dist/chunks/pricing-y21mcjsa.js +30 -0
- package/dist/chunks/serve-2knem98x.js +4655 -0
- package/dist/chunks/sqlite-store-501f32ts.js +258 -0
- package/dist/chunks/sqlite-store-fq4natnf.js +256 -0
- package/dist/chunks/sqlite-store-st99garx.js +258 -0
- package/dist/chunks/third-party-sqlite-5e85fxa2.js +11 -0
- package/dist/chunks/tui-khmnkat2.js +22 -0
- package/dist/chunks/watch-4y064yys.js +196 -0
- package/dist/chunks/webhooks-k4fh2t9c.js +109 -0
- package/dist/cli/commands/brief.d.ts.map +1 -1
- package/dist/cli/commands/extras.d.ts.map +1 -1
- package/dist/cli/commands/journal.d.ts +3 -0
- package/dist/cli/commands/journal.d.ts.map +1 -0
- package/dist/cli/commands/menubar.d.ts +97 -4
- package/dist/cli/commands/menubar.d.ts.map +1 -1
- package/dist/cli/commands/tui.d.ts +1 -1
- package/dist/cli/commands/tui.d.ts.map +1 -1
- package/dist/cli/commands/watch.d.ts.map +1 -1
- package/dist/cli/index.js +1358 -10114
- package/dist/db/cloud.d.ts +7 -9
- package/dist/db/cloud.d.ts.map +1 -1
- package/dist/db/database.d.ts +14 -12
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/ingest-concurrency-worker.d.ts +2 -0
- package/dist/db/ingest-concurrency-worker.d.ts.map +1 -0
- package/dist/db/ingest-errors.d.ts +9 -0
- package/dist/db/ingest-errors.d.ts.map +1 -0
- package/dist/db/ingest-schema.d.ts +3 -0
- package/dist/db/ingest-schema.d.ts.map +1 -0
- package/dist/db/ingest-specs.d.ts +8 -0
- package/dist/db/ingest-specs.d.ts.map +1 -0
- package/dist/db/ingest-test-contract.d.ts +3 -0
- package/dist/db/ingest-test-contract.d.ts.map +1 -0
- package/dist/db/ingest-validation.d.ts +12 -0
- package/dist/db/ingest-validation.d.ts.map +1 -0
- package/dist/db/ingest.d.ts +27 -0
- package/dist/db/ingest.d.ts.map +1 -0
- package/dist/db/legacy-schema.d.ts +7 -0
- package/dist/db/legacy-schema.d.ts.map +1 -0
- package/dist/db/observation-contract.d.ts +3 -0
- package/dist/db/observation-contract.d.ts.map +1 -0
- package/dist/db/observation-provenance.d.ts +23 -0
- package/dist/db/observation-provenance.d.ts.map +1 -0
- package/dist/db/observation-schema.d.ts +24 -0
- package/dist/db/observation-schema.d.ts.map +1 -0
- package/dist/db/pg-connection.d.ts +10 -0
- package/dist/db/pg-connection.d.ts.map +1 -0
- package/dist/db/pg-legacy-schema.d.ts +12 -0
- package/dist/db/pg-legacy-schema.d.ts.map +1 -0
- package/dist/db/pg-migrate.d.ts +4 -9
- package/dist/db/pg-migrate.d.ts.map +1 -1
- package/dist/db/pg-migrations.d.ts.map +1 -1
- package/dist/db/pg-protocol.d.ts +28 -0
- package/dist/db/pg-protocol.d.ts.map +1 -0
- package/dist/db/sqlite-store.d.ts +4 -0
- package/dist/db/sqlite-store.d.ts.map +1 -0
- package/dist/db/sync-pg.d.ts +17 -21
- package/dist/db/sync-pg.d.ts.map +1 -1
- package/dist/db/third-party-sqlite.d.ts +10 -0
- package/dist/db/third-party-sqlite.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1171 -2465
- package/dist/ingest/claude-quota.d.ts.map +1 -1
- package/dist/ingest/claude.d.ts.map +1 -1
- package/dist/ingest/codex-quota.d.ts.map +1 -1
- package/dist/ingest/codex.d.ts +25 -0
- package/dist/ingest/codex.d.ts.map +1 -1
- package/dist/ingest/collection-outcome.d.ts +17 -0
- package/dist/ingest/collection-outcome.d.ts.map +1 -0
- package/dist/ingest/cursor.d.ts.map +1 -1
- package/dist/ingest/gemini.d.ts.map +1 -1
- package/dist/ingest/hermes.d.ts +1 -1
- package/dist/ingest/hermes.d.ts.map +1 -1
- package/dist/ingest/loops.d.ts.map +1 -1
- package/dist/ingest/opencode.d.ts +1 -1
- package/dist/ingest/opencode.d.ts.map +1 -1
- package/dist/ingest/pi.d.ts +1 -1
- package/dist/ingest/pi.d.ts.map +1 -1
- package/dist/ingest/quota-observation.d.ts +16 -0
- package/dist/ingest/quota-observation.d.ts.map +1 -0
- package/dist/ingest/source-time.d.ts +4 -0
- package/dist/ingest/source-time.d.ts.map +1 -0
- package/dist/lib/accounts-store.d.ts +39 -13
- package/dist/lib/accounts-store.d.ts.map +1 -1
- package/dist/lib/analytics.d.ts.map +1 -1
- package/dist/lib/api-display-url.d.ts +1 -1
- package/dist/lib/autosync-gate.d.ts +12 -5
- package/dist/lib/autosync-gate.d.ts.map +1 -1
- package/dist/lib/billing-diff.d.ts +18 -40
- package/dist/lib/billing-diff.d.ts.map +1 -1
- package/dist/lib/brief.d.ts +2 -0
- package/dist/lib/brief.d.ts.map +1 -1
- package/dist/lib/budget-decimal.d.ts +14 -0
- package/dist/lib/budget-decimal.d.ts.map +1 -0
- package/dist/lib/cloud-ingest.d.ts +15 -0
- package/dist/lib/cloud-ingest.d.ts.map +1 -1
- package/dist/lib/cloud-storage.d.ts.map +1 -1
- package/dist/lib/ingest-batches.d.ts +21 -0
- package/dist/lib/ingest-batches.d.ts.map +1 -0
- package/dist/lib/ingest-journal-client.d.ts +37 -0
- package/dist/lib/ingest-journal-client.d.ts.map +1 -0
- package/dist/lib/ingest-journal-lock.d.ts +5 -0
- package/dist/lib/ingest-journal-lock.d.ts.map +1 -0
- package/dist/lib/ingest-journal-maintenance.d.ts +92 -0
- package/dist/lib/ingest-journal-maintenance.d.ts.map +1 -0
- package/dist/lib/ingest-journal-operation.d.ts +55 -0
- package/dist/lib/ingest-journal-operation.d.ts.map +1 -0
- package/dist/lib/ingest-journal.d.ts +73 -0
- package/dist/lib/ingest-journal.d.ts.map +1 -0
- package/dist/lib/money-display.d.ts +13 -0
- package/dist/lib/money-display.d.ts.map +1 -0
- package/dist/lib/periods.d.ts +12 -0
- package/dist/lib/periods.d.ts.map +1 -1
- package/dist/lib/pricing.d.ts +14 -0
- package/dist/lib/pricing.d.ts.map +1 -1
- package/dist/lib/savings.d.ts +64 -7
- package/dist/lib/savings.d.ts.map +1 -1
- package/dist/lib/store/index.d.ts +25 -21
- package/dist/lib/store/index.d.ts.map +1 -1
- package/dist/lib/summary-contract.d.ts +32 -0
- package/dist/lib/summary-contract.d.ts.map +1 -0
- package/dist/lib/summary-test-contract.d.ts +3 -0
- package/dist/lib/summary-test-contract.d.ts.map +1 -0
- package/dist/lib/sync-all.d.ts +4 -0
- package/dist/lib/sync-all.d.ts.map +1 -1
- package/dist/lib/sync-maintenance.d.ts.map +1 -1
- package/dist/lib/sync-report.d.ts +4 -0
- package/dist/lib/sync-report.d.ts.map +1 -0
- package/dist/lib/test-keychain-fixture.d.ts +9 -0
- package/dist/lib/test-keychain-fixture.d.ts.map +1 -0
- package/dist/mcp/agent-registry-store.d.ts +30 -0
- package/dist/mcp/agent-registry-store.d.ts.map +1 -0
- package/dist/mcp/agent-registry.d.ts +9 -16
- package/dist/mcp/agent-registry.d.ts.map +1 -1
- package/dist/mcp/index.js +2291 -3458
- package/dist/mcp/ingest-journal-tool.d.ts +2 -0
- package/dist/mcp/ingest-journal-tool.d.ts.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/openapi.d.ts.map +1 -1
- package/dist/otel/index.js +1960 -289
- package/dist/server/human-auth.d.ts +20 -0
- package/dist/server/human-auth.d.ts.map +1 -0
- package/dist/server/index.js +10639 -6720
- package/dist/server/legacy-inventory.d.ts +52 -0
- package/dist/server/legacy-inventory.d.ts.map +1 -0
- package/dist/server/legacy-operations.d.ts +64 -0
- package/dist/server/legacy-operations.d.ts.map +1 -0
- package/dist/server/legacy-plan.d.ts +55 -0
- package/dist/server/legacy-plan.d.ts.map +1 -0
- package/dist/server/legacy-preservation.d.ts +58 -0
- package/dist/server/legacy-preservation.d.ts.map +1 -0
- package/dist/server/pg-sync-worker.js +195 -21
- package/dist/server/serve.d.ts +20 -16
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/server/service-admission.d.ts +10 -0
- package/dist/server/service-admission.d.ts.map +1 -0
- package/dist/server/service-dispatcher.d.ts +45 -0
- package/dist/server/service-dispatcher.d.ts.map +1 -0
- package/dist/server/service-operations.d.ts +5 -0
- package/dist/server/service-operations.d.ts.map +1 -0
- package/dist/server/service-protocol.d.ts +50 -0
- package/dist/server/service-protocol.d.ts.map +1 -0
- package/dist/server/service-worker.d.ts +2 -0
- package/dist/server/service-worker.d.ts.map +1 -0
- package/dist/server/service-worker.js +8038 -0
- package/dist/types/index.d.ts +66 -0
- package/dist/types/index.d.ts.map +1 -1
- package/docs/README.md +1 -1
- package/docs/cli.md +1 -1
- package/docs/configuration.md +5 -5
- package/docs/cost-reporting.md +49 -0
- package/docs/historical-data-reconciliation.md +203 -0
- package/docs/ingest-journal.md +108 -0
- package/docs/ingestion.md +60 -4
- package/docs/mcp.md +2 -2
- package/docs/native-budget-save.md +84 -0
- package/docs/native-human-auth.md +102 -0
- package/docs/postgresql-legacy-schema-repair.md +30 -0
- package/docs/rest-api.md +2 -2
- package/package.json +25 -13
- package/dist/lib/test-hermetic-accounts.d.ts +0 -7
- package/dist/lib/test-hermetic-accounts.d.ts.map +0 -1
- package/dist/lib/test-hermetic-fleet-env.d.ts +0 -4
- package/dist/lib/test-hermetic-fleet-env.d.ts.map +0 -1
package/dist/db/cloud.d.ts
CHANGED
|
@@ -18,14 +18,12 @@ export declare function getCloudDatabaseUrl(env?: Env): string | undefined;
|
|
|
18
18
|
*
|
|
19
19
|
* The retired deployment-mode axis stays gone: the only switch is the server's
|
|
20
20
|
* data backend, `sqlite | postgresql`, and a present database URL is what
|
|
21
|
-
* selects `postgresql`.
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* the
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* alias, which the contract's own resolver does not read — deferring to it
|
|
28
|
-
* wholesale would silently downgrade such a deployment to sqlite.
|
|
21
|
+
* selects `postgresql`. Stale `STORAGE_MODE` / `MODE` variables (still exported
|
|
22
|
+
* by some station wrappers) are ignored entirely — they never select a backend
|
|
23
|
+
* and never fail startup (owner directive 2026-08-15). The resolver stays local
|
|
24
|
+
* because economy also honours the bare `DATABASE_URL` alias, which the
|
|
25
|
+
* contract's own resolver does not read — deferring to it wholesale would
|
|
26
|
+
* silently downgrade such a deployment to sqlite.
|
|
29
27
|
*/
|
|
30
28
|
export type EconomyServerBackend = 'sqlite' | 'postgresql';
|
|
31
29
|
export declare function resolveEconomyServerBackend(env?: Env): EconomyServerBackend;
|
|
@@ -40,7 +38,7 @@ export declare function resolveSigningSecret(): string | undefined;
|
|
|
40
38
|
*/
|
|
41
39
|
export declare function openCloudDatabase(dsn?: string | undefined): Database;
|
|
42
40
|
/** A raw pg Pool for auxiliary async work (API-key store, migrations). */
|
|
43
|
-
export declare function createCloudPool(dsn?: string | undefined): pg.Pool;
|
|
41
|
+
export declare function createCloudPool(dsn?: string | undefined, options?: Pick<pg.PoolConfig, 'max' | 'connectionTimeoutMillis' | 'query_timeout' | 'statement_timeout'>): pg.Pool;
|
|
44
42
|
/**
|
|
45
43
|
* Adapt a pg Pool to the `@hasna/contracts/auth` `AuthQueryClient` surface
|
|
46
44
|
* (many/get/execute). This backs the `ApiKeyStore` without pulling in the
|
package/dist/db/cloud.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/db/cloud.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAK/E,wDAAwD;AACxD,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/db/cloud.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAK/E,wDAAwD;AACxD,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AAE7C,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,GAAiB,GAAG,MAAM,GAAG,SAAS,CAO9E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,YAAY,CAAA;AAE1D,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,GAAiB,GAAG,oBAAoB,CAExF;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,GAAiB,GAAG,OAAO,CAEjE;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAOzD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,qBAAwB,GAAG,QAAQ,CASvE;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,GAAG,qBAAwB,EAAE,OAAO,GAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,GAAG,yBAAyB,GAAG,eAAe,GAAG,mBAAmB,CAAM,GAAG,EAAE,CAAC,IAAI,CAWlL;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,eAAe,CAcjE;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED,YAAY,EAAE,SAAS,EAAE,CAAA"}
|
package/dist/db/database.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type IngestContext, type IngestResult } from './ingest.js';
|
|
2
|
+
import type { SqliteAdapter as Database } from './sqlite-adapter.js';
|
|
2
3
|
export type PathKind = "config" | "data" | "state" | "cache";
|
|
3
4
|
export interface PathsResolverOptions {
|
|
4
5
|
app: string;
|
|
@@ -53,7 +54,7 @@ export declare function getExactDataRoot(): string | undefined;
|
|
|
53
54
|
*/
|
|
54
55
|
export declare function getDataDir(): string;
|
|
55
56
|
export declare function getDbPath(): string;
|
|
56
|
-
export declare function
|
|
57
|
+
export declare function initSchema(db: Database): void;
|
|
57
58
|
export declare function upsertCostCenter(db: Database, center: CostCenter): void;
|
|
58
59
|
export declare function getCostCenter(db: Database, id: string): CostCenter | null;
|
|
59
60
|
export declare function upsertRequest(db: Database, req: EconomyRequest): void;
|
|
@@ -93,7 +94,7 @@ export declare function deleteProject(db: Database, path: string): void;
|
|
|
93
94
|
export declare function upsertBudget(db: Database, budget: Budget): void;
|
|
94
95
|
export declare function listBudgets(db: Database): Budget[];
|
|
95
96
|
export declare function deleteBudget(db: Database, id: string): void;
|
|
96
|
-
export declare function getBudgetStatuses(db: Database): BudgetStatus[];
|
|
97
|
+
export declare function getBudgetStatuses(db: Database, now?: Date): BudgetStatus[];
|
|
97
98
|
export interface Goal {
|
|
98
99
|
id: string;
|
|
99
100
|
period: 'day' | 'week' | 'month' | 'year';
|
|
@@ -143,10 +144,7 @@ export interface BillingDaily {
|
|
|
143
144
|
}
|
|
144
145
|
export declare function upsertBillingDaily(db: Database, row: BillingDaily): void;
|
|
145
146
|
export declare function clearBillingRange(db: Database, provider: string, fromDate: string, toDate: string): void;
|
|
146
|
-
export declare function queryBillingSummary(db: Database, period: Period):
|
|
147
|
-
total_usd: number;
|
|
148
|
-
by_provider: Record<string, number>;
|
|
149
|
-
};
|
|
147
|
+
export declare function queryBillingSummary(db: Database, period: Period): import('../types/index.js').BillingSummary;
|
|
150
148
|
/**
|
|
151
149
|
* How many provider billing rows exist for a period. A $0.00 actual total is
|
|
152
150
|
* ambiguous on its own — it is produced both by "billing agrees with telemetry
|
|
@@ -194,22 +192,26 @@ export declare function seedModelPricing(db: Database, defaults: Record<string,
|
|
|
194
192
|
cacheWrite1hPer1M?: number;
|
|
195
193
|
cacheStoragePer1MHour?: number;
|
|
196
194
|
}>): void;
|
|
197
|
-
export declare function upsertSubscription(db: Database, sub: import('../types/index.js').Subscription): void;
|
|
195
|
+
export declare function upsertSubscription(db: Database, sub: import('../types/index.js').Subscription, mode?: 'configuration' | 'quota_observation'): void;
|
|
198
196
|
export declare function listSubscriptions(db: Database): import('../types/index.js').Subscription[];
|
|
199
197
|
export declare function deleteSubscription(db: Database, id: string): void;
|
|
200
198
|
export declare function upsertUsageSnapshot(db: Database, snap: Omit<import('../types/index.js').UsageSnapshot, 'id' | 'updated_at'> & {
|
|
201
199
|
id?: string;
|
|
202
200
|
updated_at?: string;
|
|
203
201
|
}): void;
|
|
202
|
+
export declare function upsertScanReceipt(db: Database, receipt: import('../types/index.js').ScanReceipt): void;
|
|
203
|
+
export declare function queryScanReceipts(db: Database, options?: {
|
|
204
|
+
machine_id?: string;
|
|
205
|
+
source?: string;
|
|
206
|
+
limit?: number;
|
|
207
|
+
}): import('../types/index.js').ScanReceipt[];
|
|
204
208
|
export declare function queryUsageSnapshots(db: Database, opts?: {
|
|
205
209
|
agent?: string;
|
|
206
210
|
date?: string;
|
|
207
211
|
since?: string;
|
|
212
|
+
before?: string;
|
|
208
213
|
}): import('../types/index.js').UsageSnapshot[];
|
|
209
214
|
export declare function listMachineRegistry(db: Database): import('../types/index.js').MachineRegistry[];
|
|
210
215
|
export declare function dedupeRequests(db: Database): number;
|
|
211
|
-
export declare function bulkIngest(db: Database, body: Record<string, unknown
|
|
212
|
-
ingested: Record<string, number>;
|
|
213
|
-
total: number;
|
|
214
|
-
};
|
|
216
|
+
export declare function bulkIngest(db: Database, body: Record<string, unknown>, context?: IngestContext): IngestResult;
|
|
215
217
|
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest-concurrency-worker.d.ts","sourceRoot":"","sources":["../../src/db/ingest-concurrency-worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Safe, authored field diagnostics. Never include a submitted value or SQL. */
|
|
2
|
+
export declare class IngestError extends Error {
|
|
3
|
+
readonly status: 400 | 409 | 413;
|
|
4
|
+
readonly code: 'INVALID_INGEST' | 'INGEST_CONFLICT' | 'INGEST_TOO_LARGE';
|
|
5
|
+
readonly field: string;
|
|
6
|
+
readonly expected: string;
|
|
7
|
+
constructor(status: 400 | 409 | 413, code: 'INVALID_INGEST' | 'INGEST_CONFLICT' | 'INGEST_TOO_LARGE', field: string, expected: string);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ingest-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest-errors.d.ts","sourceRoot":"","sources":["../../src/db/ingest-errors.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,qBAAa,WAAY,SAAQ,KAAK;IAElC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBAHhB,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EACvB,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,EAC/D,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM;CAK5B"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Additive SQL shared by SQLite initialization and one appended PG migration. */
|
|
2
|
+
export declare const INGEST_SCHEMA_SQL = "\nCREATE TABLE IF NOT EXISTS ingest_session_locks (\n session_id TEXT PRIMARY KEY\n);\n CREATE TABLE IF NOT EXISTS ingest_batches (\n operation_key TEXT PRIMARY KEY,\n actor_id TEXT NOT NULL,\n payload_hash TEXT NOT NULL,\n response_json TEXT NOT NULL,\n created_at TEXT NOT NULL\n );\n CREATE TABLE IF NOT EXISTS ingest_preimages (\n id TEXT PRIMARY KEY,\n operation_key TEXT NOT NULL REFERENCES ingest_batches(operation_key),\n table_name TEXT NOT NULL,\n entity_key TEXT NOT NULL,\n record_json TEXT NOT NULL,\n record_sha256 TEXT NOT NULL,\n recorded_at TEXT NOT NULL,\n UNIQUE (operation_key, table_name, entity_key)\n );\n CREATE INDEX IF NOT EXISTS idx_ingest_preimages_entity\n ON ingest_preimages(table_name, entity_key);\n";
|
|
3
|
+
//# sourceMappingURL=ingest-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest-schema.d.ts","sourceRoot":"","sources":["../../src/db/ingest-schema.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,ixBAuB7B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest-specs.d.ts","sourceRoot":"","sources":["../../src/db/ingest-specs.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,EAAE,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,EAAE,CAAA;CAC9D;AASD,wBAAgB,WAAW,IAAI,UAAU,EAAE,CA4H1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest-test-contract.d.ts","sourceRoot":"","sources":["../../src/db/ingest-test-contract.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAKpD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA0EvE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type IngestSpec } from './ingest-specs.js';
|
|
2
|
+
export declare const MAX_INGEST_ROWS = 10000;
|
|
3
|
+
export declare const MAX_INGEST_BYTES: number;
|
|
4
|
+
export declare function stableJson(value: unknown): string;
|
|
5
|
+
export declare function canonicalIngestBodyHash(body: Record<string, unknown>): string;
|
|
6
|
+
export interface ValidatedIngest {
|
|
7
|
+
spec: IngestSpec;
|
|
8
|
+
rows: Record<string, unknown>[];
|
|
9
|
+
}
|
|
10
|
+
/** Validate the entire command before SQL. No coercion of invalid input to zero. */
|
|
11
|
+
export declare function validateIngest(body: Record<string, unknown>): ValidatedIngest[];
|
|
12
|
+
//# sourceMappingURL=ingest-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest-validation.d.ts","sourceRoot":"","sources":["../../src/db/ingest-validation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGhE,eAAO,MAAM,eAAe,QAAQ,CAAA;AACpC,eAAO,MAAM,gBAAgB,QAAkB,CAAA;AAa/C,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOjD;AACD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAE7E;AAiBD,MAAM,WAAW,eAAe;IAAG,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAAE;AACtF,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE,CAiF/E"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DbAdapter } from './sqlite-adapter.js';
|
|
2
|
+
export interface IngestResult {
|
|
3
|
+
ingested: Record<string, number>;
|
|
4
|
+
total: number;
|
|
5
|
+
stale: number;
|
|
6
|
+
unchanged: number;
|
|
7
|
+
operation_key: string;
|
|
8
|
+
replayed: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface IngestContext {
|
|
11
|
+
actorId?: string;
|
|
12
|
+
}
|
|
13
|
+
/** A command is atomic, including its receipt, predecessor snapshots and rollups.
|
|
14
|
+
* Failed/ambiguous SQL is never replayed here. Callers reconcile by resubmitting
|
|
15
|
+
* the identical command/key, whose committed receipt is returned unchanged. */
|
|
16
|
+
export declare function ingestCommand(db: DbAdapter, body: Record<string, unknown>, rollup: (db: DbAdapter, sessionId: string) => void, context?: IngestContext): IngestResult;
|
|
17
|
+
export type IngestReceiptResult = {
|
|
18
|
+
status: 'absent';
|
|
19
|
+
body_hash: string;
|
|
20
|
+
} | {
|
|
21
|
+
status: 'committed';
|
|
22
|
+
body_hash: string;
|
|
23
|
+
receipt: IngestResult;
|
|
24
|
+
};
|
|
25
|
+
/** Read-only: absent is a current observation, never proof an uncertain write cannot later commit. */
|
|
26
|
+
export declare function reconcileIngestReceipt(db: DbAdapter, idempotencyKey: string, bodyHash: string, context: IngestContext): IngestReceiptResult;
|
|
27
|
+
//# sourceMappingURL=ingest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/db/ingest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAKpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;CAClB;AACD,MAAM,WAAW,aAAa;IAAG,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AASnD;;+EAE+E;AAC/E,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxE,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,EAAE,OAAO,GAAE,aAAkB,GAAG,YAAY,CA+K/F;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAA;AACrE,sGAAsG;AACtG,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,mBAAmB,CAiB3I"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Reconciliation is an overlay: original requests and sessions stay in place.
|
|
2
|
+
* Apply and rollback histories are append-only; active dispositions are derived. */
|
|
3
|
+
export declare const LEGACY_LEDGER_SQL = "\nCREATE TABLE IF NOT EXISTS legacy_reconciliations (\n operation_key TEXT PRIMARY KEY NOT NULL,\n payload_sha256 TEXT NOT NULL CHECK(length(payload_sha256)=64),\n plan_sha256 TEXT NOT NULL CHECK(length(plan_sha256)=64),\n capsule_sha256 TEXT NOT NULL CHECK(length(capsule_sha256)=64),\n capsule_json TEXT NOT NULL,\n actor_ref TEXT NOT NULL,\n authority_ref TEXT NOT NULL,\n created_at TEXT NOT NULL,\n response_json TEXT NOT NULL\n);\nCREATE TABLE IF NOT EXISTS legacy_reconciliation_targets (\n operation_key TEXT NOT NULL REFERENCES legacy_reconciliations(operation_key),\n request_id TEXT NOT NULL,\n session_id TEXT NOT NULL,\n disposition TEXT NOT NULL CHECK(disposition IN ('quarantine_aggregate','mark_billing_unknown')),\n original_sha256 TEXT NOT NULL CHECK(length(original_sha256)=64),\n PRIMARY KEY(operation_key,request_id)\n);\nCREATE INDEX IF NOT EXISTS idx_legacy_targets_request ON legacy_reconciliation_targets(request_id);\nCREATE INDEX IF NOT EXISTS idx_legacy_targets_session ON legacy_reconciliation_targets(session_id);\nCREATE TABLE IF NOT EXISTS legacy_rollbacks (\n operation_key TEXT PRIMARY KEY NOT NULL,\n apply_key TEXT NOT NULL UNIQUE REFERENCES legacy_reconciliations(operation_key),\n payload_sha256 TEXT NOT NULL CHECK(length(payload_sha256)=64),\n actor_ref TEXT NOT NULL,\n authority_ref TEXT NOT NULL,\n created_at TEXT NOT NULL,\n response_json TEXT NOT NULL\n);\n";
|
|
4
|
+
export declare const LEGACY_VIEWS_SQL: string;
|
|
5
|
+
export declare const LEGACY_SQLITE_SQL: string;
|
|
6
|
+
export declare const LEGACY_PG_SQL: string;
|
|
7
|
+
//# sourceMappingURL=legacy-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-schema.d.ts","sourceRoot":"","sources":["../../src/db/legacy-schema.ts"],"names":[],"mappings":"AAAA;oFACoF;AACpF,eAAO,MAAM,iBAAiB,s5CA+B7B,CAAA;AA2BD,eAAO,MAAM,gBAAgB,QAW5B,CAAA;AAOD,eAAO,MAAM,iBAAiB,QAuB7B,CAAA;AAKD,eAAO,MAAM,aAAa,QA+CzB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation-contract.d.ts","sourceRoot":"","sources":["../../src/db/observation-contract.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAOxD,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAgG1E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type ValueKind = 'gauge' | 'cumulative' | 'delta' | 'unknown';
|
|
2
|
+
export type AmountBasis = 'unknown' | 'observed' | 'configured';
|
|
3
|
+
/** Fixed collector diagnostics: never store provider responses or arbitrary error text. */
|
|
4
|
+
export declare const SCAN_ERROR_CODES: readonly ["SOURCE_MISSING", "SOURCE_UNREADABLE", "SOURCE_INVALID", "LEGACY_AGGREGATE_REQUIRES_MIGRATION", "USAGE_EVENTS_UNAVAILABLE", "USAGE_EVENTS_INCOMPLETE", "PROVIDER_CREDENTIAL_UNAVAILABLE", "PROVIDER_CREDENTIAL_UNREADABLE", "PROVIDER_AUTH_REFUSED", "PROVIDER_REFUSED", "PROVIDER_UNAVAILABLE", "ACCOUNT_IDENTITY_UNAVAILABLE", "SUBSCRIPTION_QUOTA_NOT_APPLICABLE", "TEAM_USAGE_ATTRIBUTION_UNAVAILABLE", "CROSS_APP_LOCAL_READ_REFUSED", "COLLECTION_FAILED"];
|
|
5
|
+
export declare function observationId(input: {
|
|
6
|
+
provider: string;
|
|
7
|
+
account_key: string;
|
|
8
|
+
machine_id: string;
|
|
9
|
+
metric: string;
|
|
10
|
+
observed_at: string;
|
|
11
|
+
}): string;
|
|
12
|
+
export declare function subscriptionId(input: {
|
|
13
|
+
provider: string;
|
|
14
|
+
account_key: string;
|
|
15
|
+
}): string;
|
|
16
|
+
export declare function scanReceiptId(input: {
|
|
17
|
+
machine_id: string;
|
|
18
|
+
source: string;
|
|
19
|
+
attempted_at: string;
|
|
20
|
+
}): string;
|
|
21
|
+
/** Validate meaning, never convert a cumulative measurement into a delta. */
|
|
22
|
+
export declare function validateObservationProvenance(table: string, row: Record<string, unknown>, path: string): void;
|
|
23
|
+
//# sourceMappingURL=observation-provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation-provenance.d.ts","sourceRoot":"","sources":["../../src/db/observation-provenance.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,SAAS,CAAA;AACpE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAA;AAC/D,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB,4cAMnB,CAAA;AAEV,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE/I;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEvF;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEzG;AAOD,6EAA6E;AAC7E,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CA8B7G"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Additive only: legacy values are retained, provenance defaults to unknown. */
|
|
2
|
+
export declare const OBSERVATION_COLUMNS: {
|
|
3
|
+
readonly usage_snapshots: {
|
|
4
|
+
readonly provider: "TEXT NOT NULL DEFAULT ''";
|
|
5
|
+
readonly account_key: "TEXT NOT NULL DEFAULT ''";
|
|
6
|
+
readonly observed_at: "TEXT";
|
|
7
|
+
readonly source_timestamp: "TEXT";
|
|
8
|
+
readonly window_start: "TEXT";
|
|
9
|
+
readonly window_end: "TEXT";
|
|
10
|
+
readonly reset_at: "TEXT";
|
|
11
|
+
readonly window_seconds: "INTEGER";
|
|
12
|
+
readonly value_kind: "TEXT NOT NULL DEFAULT 'unknown'";
|
|
13
|
+
};
|
|
14
|
+
readonly subscriptions: {
|
|
15
|
+
readonly account_key: "TEXT NOT NULL DEFAULT ''";
|
|
16
|
+
readonly observed_station: "TEXT";
|
|
17
|
+
readonly observed_at: "TEXT";
|
|
18
|
+
readonly fee_basis: "TEXT NOT NULL DEFAULT 'unknown'";
|
|
19
|
+
readonly included_basis: "TEXT NOT NULL DEFAULT 'unknown'";
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export declare const SCAN_RECEIPTS_SQL = "CREATE TABLE IF NOT EXISTS scan_receipts (\n id TEXT PRIMARY KEY, machine_id TEXT NOT NULL, source TEXT NOT NULL,\n attempted_at TEXT NOT NULL, completed_at TEXT NOT NULL, status TEXT NOT NULL,\n latest_event_at TEXT, parser_version TEXT NOT NULL, error_code TEXT,\n updated_at TEXT NOT NULL\n);\nCREATE INDEX IF NOT EXISTS idx_scan_receipts_machine_source\n ON scan_receipts(machine_id, source, completed_at);";
|
|
23
|
+
export declare const OBSERVATION_PG_MIGRATIONS: string[];
|
|
24
|
+
//# sourceMappingURL=observation-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation-schema.d.ts","sourceRoot":"","sources":["../../src/db/observation-schema.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAUtB,CAAA;AACV,eAAO,MAAM,iBAAiB,oaAOwB,CAAA;AACtD,eAAO,MAAM,yBAAyB,UAIrC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import pg from 'pg';
|
|
2
|
+
/**
|
|
3
|
+
* Preserve node-postgres's existing DSN/environment resolution, including
|
|
4
|
+
* sslrootcert, sslcert and sslkey. Materialize it once so reparsing a DSN cannot
|
|
5
|
+
* overwrite the TLS verifier. Encrypted connections always verify CA and host,
|
|
6
|
+
* including require/no-verify modes; explicitly plaintext configurations retain
|
|
7
|
+
* their existing semantics. No connection is opened by this resolver.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolvePgConnection(dsn: string): pg.PoolConfig;
|
|
10
|
+
//# sourceMappingURL=pg-connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-connection.d.ts","sourceRoot":"","sources":["../../src/db/pg-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAGnB;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAiB9D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface LegacySchemaRepairResult {
|
|
2
|
+
id: string;
|
|
3
|
+
status: 'not_needed' | 'applied' | 'already_applied';
|
|
4
|
+
added: string[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Repair one known additive schema gap before the existing numbered migration
|
|
8
|
+
* sequence. Only the explicit migration command calls this; server startup
|
|
9
|
+
* never repairs a store. Originals and their migration markers are untouched.
|
|
10
|
+
*/
|
|
11
|
+
export declare function repairLegacyCostCenterSchema(dsn: string): Promise<LegacySchemaRepairResult>;
|
|
12
|
+
//# sourceMappingURL=pg-legacy-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-legacy-schema.d.ts","sourceRoot":"","sources":["../../src/db/pg-legacy-schema.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,iBAAiB,CAAA;IACpD,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AA6HD;;;;GAIG;AACH,wBAAsB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA8DjG"}
|
package/dist/db/pg-migrate.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import pg from 'pg';
|
|
1
2
|
export interface PgMigrationResult {
|
|
2
3
|
service: string;
|
|
3
4
|
applied: number[];
|
|
@@ -5,15 +6,9 @@ export interface PgMigrationResult {
|
|
|
5
6
|
errors: string[];
|
|
6
7
|
totalMigrations: number;
|
|
7
8
|
}
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
* encryption without chain verification — matching how every other economy
|
|
12
|
-
* Postgres connection in this repo is dialled.
|
|
13
|
-
*/
|
|
14
|
-
export declare function resolvePgSsl(dsn: string): {
|
|
15
|
-
rejectUnauthorized: false;
|
|
16
|
-
} | undefined;
|
|
9
|
+
/** Compatibility export; full pool setup must use resolvePgConnection so the
|
|
10
|
+
* DSN cannot overwrite this verified TLS configuration during pg reparsing. */
|
|
11
|
+
export declare function resolvePgSsl(dsn: string): pg.PoolConfig['ssl'];
|
|
17
12
|
/**
|
|
18
13
|
* Apply an ordered array of SQL migrations to a PostgreSQL database.
|
|
19
14
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-migrate.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pg-migrate.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrate.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,IAAI,CAAA;AAGnB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;+EAC+E;AAC/E,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAE9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,SAAY,GAClB,OAAO,CAAC,iBAAiB,CAAC,CAsD5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-migrations.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pg-migrations.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrations.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,eAAO,MAAM,aAAa,EAAE,MAAM,EA+QjC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type PgOperation = 'query' | 'begin' | 'commit' | 'rollback' | 'savepoint' | 'release' | 'rollbackTo';
|
|
2
|
+
export interface PgResult {
|
|
3
|
+
rows: Array<Record<string, unknown>>;
|
|
4
|
+
rowCount: number;
|
|
5
|
+
}
|
|
6
|
+
export type PgReply = ({
|
|
7
|
+
id: number;
|
|
8
|
+
ok: true;
|
|
9
|
+
} & PgResult) | {
|
|
10
|
+
id: number;
|
|
11
|
+
ok: false;
|
|
12
|
+
error: string;
|
|
13
|
+
code: string;
|
|
14
|
+
fatal: boolean;
|
|
15
|
+
};
|
|
16
|
+
export interface PgRequest {
|
|
17
|
+
id: number;
|
|
18
|
+
operation: PgOperation;
|
|
19
|
+
sql?: string;
|
|
20
|
+
params: unknown[];
|
|
21
|
+
deadline: number;
|
|
22
|
+
transactionId: number | null;
|
|
23
|
+
depth: number;
|
|
24
|
+
signal: SharedArrayBuffer;
|
|
25
|
+
}
|
|
26
|
+
/** Comparable monotonic milliseconds across threads, unaffected by clock steps. */
|
|
27
|
+
export declare function pgNow(): number;
|
|
28
|
+
//# sourceMappingURL=pg-protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-protocol.d.ts","sourceRoot":"","sources":["../../src/db/pg-protocol.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,CAAA;AAC5G,MAAM,WAAW,QAAQ;IAAG,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AACpF,MAAM,MAAM,OAAO,GAAG,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG,QAAQ,CAAC,GACvD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAC1E,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,WAAW,CAAA;IACtB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,iBAAiB,CAAA;CAC1B;AACD,mFAAmF;AACnF,wBAAgB,KAAK,IAAI,MAAM,CAAsD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../../src/db/sqlite-store.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAI/D,cAAc,eAAe,CAAA;AAkC7B,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,QAAQ,CAwBxE"}
|
package/dist/db/sync-pg.d.ts
CHANGED
|
@@ -6,31 +6,27 @@ import type { DbAdapter, PreparedStatement, RunResult } from './sqlite-adapter.j
|
|
|
6
6
|
* `DATE(col)` casts through `timestamptz`. Ordered most-specific first.
|
|
7
7
|
*/
|
|
8
8
|
export declare function translateSqliteDates(sql: string): string;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*/
|
|
16
|
-
export declare function isTransientConnError(message: string): boolean;
|
|
9
|
+
export interface SyncPgOptions {
|
|
10
|
+
/** Includes worker startup, connection acquisition, execution and reply delivery. */
|
|
11
|
+
queryTimeoutMs?: number;
|
|
12
|
+
/** Total time allowed across a transaction callback and all nested work. */
|
|
13
|
+
transactionTimeoutMs?: number;
|
|
14
|
+
}
|
|
17
15
|
export declare class SyncPgAdapter implements DbAdapter {
|
|
18
16
|
private readonly worker;
|
|
19
17
|
private readonly port;
|
|
20
|
-
private
|
|
18
|
+
private readonly lifecycle;
|
|
21
19
|
private readonly sleeper;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
private drainReply;
|
|
33
|
-
private queryOnce;
|
|
20
|
+
private readonly queryTimeoutMs;
|
|
21
|
+
private readonly transactionTimeoutMs;
|
|
22
|
+
private counter;
|
|
23
|
+
private transactionId;
|
|
24
|
+
private transactionDeadline;
|
|
25
|
+
private depth;
|
|
26
|
+
private closed;
|
|
27
|
+
constructor(dsn: string, options?: SyncPgOptions);
|
|
28
|
+
private abandon;
|
|
29
|
+
private request;
|
|
34
30
|
private query;
|
|
35
31
|
run(sql: string, ...params: unknown[]): RunResult;
|
|
36
32
|
get(sql: string, ...params: unknown[]): unknown;
|
package/dist/db/sync-pg.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-pg.d.ts","sourceRoot":"","sources":["../../src/db/sync-pg.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAIlF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiCxD;
|
|
1
|
+
{"version":3,"file":"sync-pg.d.ts","sourceRoot":"","sources":["../../src/db/sync-pg.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAIlF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiCxD;AAwBD,MAAM,WAAW,aAAa;IAC5B,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAUD,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAC7C,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,mBAAmB,CAAW;IACtC,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,MAAM,CAAQ;gBAEV,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB;IAiBpD,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,OAAO;IAkDf,OAAO,CAAC,KAAK;IAGb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS;IAIjD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO;IAC/C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IACjD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IACvB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB;IAQvC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAgC9B,KAAK,IAAI,IAAI;CACd"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Database } from 'bun:sqlite';
|
|
2
|
+
export type ThirdPartyDatabase = Database;
|
|
3
|
+
/**
|
|
4
|
+
* Open a third-party SQLite file. Read-only first (the owning tool may hold a
|
|
5
|
+
* write lock); callers that need the writable retry pass `readonly: false`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function openThirdPartySqlite(path: string, options?: {
|
|
8
|
+
readonly?: boolean;
|
|
9
|
+
}): Database;
|
|
10
|
+
//# sourceMappingURL=third-party-sqlite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"third-party-sqlite.d.ts","sourceRoot":"","sources":["../../src/db/third-party-sqlite.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AAEzC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,QAAQ,CAEjG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
export * from './types/index.js';
|
|
2
2
|
export * from './lib/store/index.js';
|
|
3
|
+
export { ingestJournal } from './lib/ingest-journal-client.js';
|
|
4
|
+
export { ingestJournalOperationSchema } from './lib/ingest-journal-operation.js';
|
|
5
|
+
export type { IngestJournalOperation } from './lib/ingest-journal-operation.js';
|
|
3
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,YAAY,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA"}
|