@vibes.diy/api-svc 4.0.16 → 4.0.18
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/README.md +1 -1
- package/billing.d.ts +3 -0
- package/billing.js +10 -0
- package/billing.js.map +1 -1
- package/check-auth.d.ts +9 -0
- package/check-auth.js +17 -0
- package/check-auth.js.map +1 -1
- package/create-handler.js +4 -0
- package/create-handler.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/intern/attempt-backend-fetch.js.map +1 -1
- package/intern/backend-db-callback.js +7 -1
- package/intern/backend-db-callback.js.map +1 -1
- package/intern/chat-persist-gate.d.ts +7 -0
- package/intern/chat-persist-gate.js +50 -0
- package/intern/chat-persist-gate.js.map +1 -0
- package/intern/grouped-vibe-import-map.js +1 -1
- package/intern/grouped-vibe-import-map.js.map +1 -1
- package/intern/process-access-bindings.js +216 -70
- package/intern/process-access-bindings.js.map +1 -1
- package/intern/put-access-gate.js +1 -1
- package/intern/put-access-gate.js.map +1 -1
- package/intern/render-vibe.js +12 -0
- package/intern/render-vibe.js.map +1 -1
- package/intern/resolve-backend-session-user.d.ts +6 -0
- package/intern/resolve-backend-session-user.js +9 -0
- package/intern/resolve-backend-session-user.js.map +1 -0
- package/intern/vibe-ssr-attempt.d.ts +4 -2
- package/intern/vibe-ssr-attempt.js +13 -5
- package/intern/vibe-ssr-attempt.js.map +1 -1
- package/package.json +13 -13
- package/peers/r2-to-s3api.d.ts +1 -0
- package/peers/r2-to-s3api.js +4 -1
- package/peers/r2-to-s3api.js.map +1 -1
- package/public/app-documents-read-eventos.js +5 -5
- package/public/app-documents-read-eventos.js.map +1 -1
- package/public/app-documents-write-eventos.js +59 -27
- package/public/app-documents-write-eventos.js.map +1 -1
- package/public/asset-session.js +2 -20
- package/public/asset-session.js.map +1 -1
- package/public/channel-read-filter.js +1 -1
- package/public/channel-read-filter.js.map +1 -1
- package/public/ensure-app-slug-item.js.map +1 -1
- package/public/get-app-by-fsid.js +17 -0
- package/public/get-app-by-fsid.js.map +1 -1
- package/public/prompt-chat-section.d.ts +3 -1
- package/public/prompt-chat-section.js +132 -14
- package/public/prompt-chat-section.js.map +1 -1
- package/public/who-am-i.js +7 -10
- package/public/who-am-i.js.map +1 -1
- package/usage-report/backfill-avatars.js +6 -4
- package/usage-report/backfill-avatars.js.map +1 -1
- package/usage-report/billing-reconcile-util.d.ts +25 -0
- package/usage-report/billing-reconcile-util.js +47 -0
- package/usage-report/billing-reconcile-util.js.map +1 -0
- package/usage-report/billing-reconcile.d.ts +1 -0
- package/usage-report/billing-reconcile.js +60 -0
- package/usage-report/billing-reconcile.js.map +1 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { Result, exception2Result } from "@adviser/cement";
|
|
3
|
+
import { mergeReconciliation, renderReconciliationMarkdown } from "./billing-reconcile-util.js";
|
|
4
|
+
import { formatError } from "./usage-report-util.js";
|
|
5
|
+
function arg(name) {
|
|
6
|
+
const i = process.argv.indexOf(name);
|
|
7
|
+
return i >= 0 ? process.argv[i + 1] : undefined;
|
|
8
|
+
}
|
|
9
|
+
function keyFromEnvFile(path) {
|
|
10
|
+
const line = readFileSync(path, "utf8")
|
|
11
|
+
.split("\n")
|
|
12
|
+
.find((l) => l.startsWith("AUTUMN_SECRET_KEY="));
|
|
13
|
+
return line
|
|
14
|
+
?.slice("AUTUMN_SECRET_KEY=".length)
|
|
15
|
+
.replace(/^["']|["']$/g, "")
|
|
16
|
+
.trim();
|
|
17
|
+
}
|
|
18
|
+
async function run() {
|
|
19
|
+
const dbJsonPath = arg("--db-json");
|
|
20
|
+
if (dbJsonPath === undefined || dbJsonPath === "") {
|
|
21
|
+
return Result.Err("--db-json <rows.json> is required");
|
|
22
|
+
}
|
|
23
|
+
const envFile = arg("--env-file");
|
|
24
|
+
const key = process.env.AUTUMN_SECRET_KEY ?? (envFile !== undefined && envFile !== "" ? keyFromEnvFile(envFile) : undefined);
|
|
25
|
+
if (key === undefined || key === "") {
|
|
26
|
+
return Result.Err("AUTUMN_SECRET_KEY not found in env or --env-file");
|
|
27
|
+
}
|
|
28
|
+
return exception2Result(async () => {
|
|
29
|
+
const db = JSON.parse(readFileSync(dbJsonPath, "utf8"));
|
|
30
|
+
const autumn = [];
|
|
31
|
+
for (const row of db) {
|
|
32
|
+
const res = await fetch("https://api.useautumn.com/v1/balances.check", {
|
|
33
|
+
method: "POST",
|
|
34
|
+
headers: { authorization: `Bearer ${key}`, "x-api-version": "2.3.0", "content-type": "application/json" },
|
|
35
|
+
body: JSON.stringify({ customer_id: row.userId, feature_id: "ai_credits" }),
|
|
36
|
+
});
|
|
37
|
+
const json = (await res.json().catch(() => ({})));
|
|
38
|
+
if (res.status === 404 && json.code === "customer_not_found") {
|
|
39
|
+
autumn.push({ userId: row.userId, usage: 0 });
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (!res.ok) {
|
|
43
|
+
throw new Error(`balances.check failed for ${row.userId}: HTTP ${res.status}${json.code ? ` (${json.code})` : ""}`);
|
|
44
|
+
}
|
|
45
|
+
if (typeof json.balance?.usage !== "number") {
|
|
46
|
+
throw new Error(`balances.check returned no balance.usage for ${row.userId} — unexpected payload shape`);
|
|
47
|
+
}
|
|
48
|
+
autumn.push({ userId: row.userId, usage: json.balance.usage });
|
|
49
|
+
}
|
|
50
|
+
const report = mergeReconciliation(db, autumn);
|
|
51
|
+
console.log(renderReconciliationMarkdown(report, [250, 1000, 3250]));
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
run().then((result) => {
|
|
55
|
+
if (result.isErr()) {
|
|
56
|
+
console.error(formatError(result.Err()));
|
|
57
|
+
process.exitCode = 1;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=billing-reconcile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-reconcile.js","sourceRoot":"","sources":["../../jsr/usage-report/billing-reconcile.ts"],"names":[],"mappings":"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"}
|