@vibes.diy/api-svc 13.1.1 → 13.1.3
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/intern/hubspot-signup.d.ts +46 -0
- package/intern/hubspot-signup.js +237 -0
- package/intern/hubspot-signup.js.map +1 -0
- package/package.json +12 -11
- package/public/app-documents-read-eventos.js +29 -2
- package/public/app-documents-read-eventos.js.map +1 -1
- package/public/app-documents-write-eventos.js +40 -1
- package/public/app-documents-write-eventos.js.map +1 -1
- package/public/dm-read-eventos.d.ts +2 -0
- package/public/dm-write-eventos.d.ts +2 -0
- package/usage-report/backfill-hubspot-contacts-util.d.ts +62 -0
- package/usage-report/backfill-hubspot-contacts-util.js +87 -0
- package/usage-report/backfill-hubspot-contacts-util.js.map +1 -0
- package/usage-report/backfill-hubspot-contacts.d.ts +1 -0
- package/usage-report/backfill-hubspot-contacts.js +222 -0
- package/usage-report/backfill-hubspot-contacts.js.map +1 -0
- package/usage-report/inspect-db.js +62 -2
- package/usage-report/inspect-db.js.map +1 -1
- package/usage-report/new-user-alert-util.js +8 -1
- package/usage-report/new-user-alert-util.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-documents-write-eventos.js","sourceRoot":"","sources":["../../jsr/public/app-documents-write-eventos.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-documents-write-eventos.js","sourceRoot":"","sources":["../../jsr/public/app-documents-write-eventos.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,7 @@ export declare const dmQueryDocsHandle: (ctx: HandleTriggerCtx<{
|
|
|
44
44
|
adminMode?: boolean | undefined;
|
|
45
45
|
limit?: number | undefined;
|
|
46
46
|
after?: string | undefined;
|
|
47
|
+
actingHandle?: string | undefined;
|
|
47
48
|
}>, {
|
|
48
49
|
type: "vibes.diy.res-query-docs";
|
|
49
50
|
status: "ok";
|
|
@@ -128,6 +129,7 @@ export declare const dmGetDocHandle: (ctx: HandleTriggerCtx<{
|
|
|
128
129
|
dbName: string;
|
|
129
130
|
docId: string;
|
|
130
131
|
adminMode?: boolean | undefined;
|
|
132
|
+
actingHandle?: string | undefined;
|
|
131
133
|
}>, {
|
|
132
134
|
type: "vibes.diy.res-get-doc";
|
|
133
135
|
status: "ok";
|
|
@@ -38,6 +38,7 @@ export declare const dmPutDocHandle: (ctx: HandleTriggerCtx<{
|
|
|
38
38
|
doc: Record<string, unknown>;
|
|
39
39
|
docId?: string | undefined;
|
|
40
40
|
adminMode?: boolean | undefined;
|
|
41
|
+
actingHandle?: string | undefined;
|
|
41
42
|
}>, {
|
|
42
43
|
type: "vibes.diy.res-put-doc";
|
|
43
44
|
status: "ok";
|
|
@@ -79,6 +80,7 @@ export declare const dmDeleteDocHandle: (ctx: HandleTriggerCtx<{
|
|
|
79
80
|
dbName: string;
|
|
80
81
|
docId: string;
|
|
81
82
|
adminMode?: boolean | undefined;
|
|
83
|
+
actingHandle?: string | undefined;
|
|
82
84
|
}>, {
|
|
83
85
|
type: "vibes.diy.res-delete-doc";
|
|
84
86
|
status: "ok";
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type Exclusions } from "./new-user-alert-util.js";
|
|
2
|
+
export declare const POPULATIONS: {
|
|
3
|
+
readonly all: "every Clerk account";
|
|
4
|
+
readonly makers: "accounts that ever sent a codegen turn";
|
|
5
|
+
readonly handles: "accounts that ever claimed a handle";
|
|
6
|
+
};
|
|
7
|
+
export type PopulationKey = keyof typeof POPULATIONS;
|
|
8
|
+
export declare function isPopulationKey(value: string | undefined): value is PopulationKey;
|
|
9
|
+
export interface BackfillAccount {
|
|
10
|
+
readonly userId: string;
|
|
11
|
+
readonly email?: string;
|
|
12
|
+
readonly handles: readonly string[];
|
|
13
|
+
readonly codegenTurns: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function inPopulation(account: BackfillAccount, population: PopulationKey): boolean;
|
|
16
|
+
export interface SelectionResult {
|
|
17
|
+
readonly selected: readonly BackfillAccount[];
|
|
18
|
+
readonly excludedStaff: number;
|
|
19
|
+
readonly excludedPopulation: number;
|
|
20
|
+
readonly excludedNoEmail: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function selectAccounts(accounts: readonly BackfillAccount[], population: PopulationKey, exclusions: Exclusions): SelectionResult;
|
|
23
|
+
type PlannedAction = "noop" | "merge" | "create" | "failed";
|
|
24
|
+
export interface PlanEntry {
|
|
25
|
+
readonly userId: string;
|
|
26
|
+
readonly handles: readonly string[];
|
|
27
|
+
readonly action: PlannedAction;
|
|
28
|
+
readonly contactId?: string;
|
|
29
|
+
readonly reason?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface PlanCounts {
|
|
32
|
+
readonly noop: number;
|
|
33
|
+
readonly merge: number;
|
|
34
|
+
readonly create: number;
|
|
35
|
+
readonly failed: number;
|
|
36
|
+
readonly total: number;
|
|
37
|
+
}
|
|
38
|
+
export declare function countPlan(entries: readonly PlanEntry[]): PlanCounts;
|
|
39
|
+
export interface Reconciliation {
|
|
40
|
+
readonly intended: number;
|
|
41
|
+
readonly linkedContacts: number;
|
|
42
|
+
readonly linkedBefore: number;
|
|
43
|
+
readonly created: number;
|
|
44
|
+
readonly merged: number;
|
|
45
|
+
readonly failed: number;
|
|
46
|
+
}
|
|
47
|
+
export interface ReconciliationVerdict {
|
|
48
|
+
readonly ok: boolean;
|
|
49
|
+
readonly drift: number;
|
|
50
|
+
readonly lines: readonly string[];
|
|
51
|
+
}
|
|
52
|
+
export declare function reconcile(r: Reconciliation): ReconciliationVerdict;
|
|
53
|
+
export interface ReportInput {
|
|
54
|
+
readonly population: PopulationKey;
|
|
55
|
+
readonly selection: SelectionResult;
|
|
56
|
+
readonly counts: PlanCounts;
|
|
57
|
+
readonly apply: boolean;
|
|
58
|
+
readonly stripeOrphans?: number;
|
|
59
|
+
readonly listCaveat?: boolean;
|
|
60
|
+
}
|
|
61
|
+
export declare function formatPlanReport(input: ReportInput): string;
|
|
62
|
+
export {};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { isStaffOrQa } from "./new-user-alert-util.js";
|
|
2
|
+
export const POPULATIONS = {
|
|
3
|
+
all: "every Clerk account",
|
|
4
|
+
makers: "accounts that ever sent a codegen turn",
|
|
5
|
+
handles: "accounts that ever claimed a handle",
|
|
6
|
+
};
|
|
7
|
+
export function isPopulationKey(value) {
|
|
8
|
+
return value !== undefined && Object.hasOwn(POPULATIONS, value);
|
|
9
|
+
}
|
|
10
|
+
export function inPopulation(account, population) {
|
|
11
|
+
switch (population) {
|
|
12
|
+
case "makers":
|
|
13
|
+
return account.codegenTurns > 0;
|
|
14
|
+
case "handles":
|
|
15
|
+
return account.handles.length > 0;
|
|
16
|
+
case "all":
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function selectAccounts(accounts, population, exclusions) {
|
|
21
|
+
const selected = [];
|
|
22
|
+
let excludedStaff = 0;
|
|
23
|
+
let excludedPopulation = 0;
|
|
24
|
+
let excludedNoEmail = 0;
|
|
25
|
+
for (const account of accounts) {
|
|
26
|
+
if (!inPopulation(account, population)) {
|
|
27
|
+
excludedPopulation = excludedPopulation + 1;
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (isStaffOrQa({ userId: account.userId, email: account.email, handles: account.handles }, exclusions)) {
|
|
31
|
+
excludedStaff = excludedStaff + 1;
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (account.email === undefined || account.email.trim() === "") {
|
|
35
|
+
excludedNoEmail = excludedNoEmail + 1;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
selected.push(account);
|
|
39
|
+
}
|
|
40
|
+
return { selected, excludedStaff, excludedPopulation, excludedNoEmail };
|
|
41
|
+
}
|
|
42
|
+
export function countPlan(entries) {
|
|
43
|
+
const counts = { noop: 0, merge: 0, create: 0, failed: 0 };
|
|
44
|
+
for (const entry of entries) {
|
|
45
|
+
counts[entry.action] = counts[entry.action] + 1;
|
|
46
|
+
}
|
|
47
|
+
return { ...counts, total: entries.length };
|
|
48
|
+
}
|
|
49
|
+
export function reconcile(r) {
|
|
50
|
+
const expected = r.linkedBefore + r.created + r.merged;
|
|
51
|
+
const drift = r.linkedContacts - expected;
|
|
52
|
+
const lines = [
|
|
53
|
+
`intended population: ${r.intended}`,
|
|
54
|
+
`contacts with clerk_user_id before: ${r.linkedBefore}`,
|
|
55
|
+
`created: ${r.created} merged: ${r.merged} failed: ${r.failed}`,
|
|
56
|
+
`contacts with clerk_user_id after: ${r.linkedContacts} (expected ${expected})`,
|
|
57
|
+
];
|
|
58
|
+
if (drift !== 0) {
|
|
59
|
+
lines.push(`DRIFT ${drift > 0 ? "+" : ""}${drift} — do not round this away. A positive drift means contacts ` +
|
|
60
|
+
`gained a join key that this run did not write; a negative one means writes did not land, or ` +
|
|
61
|
+
`HubSpot's search index has not caught up yet (it lags writes — re-read before concluding).`);
|
|
62
|
+
}
|
|
63
|
+
if (r.failed > 0) {
|
|
64
|
+
lines.push(`${r.failed} account(s) failed — re-run; the upsert is idempotent and a failure leaves no partial contact.`);
|
|
65
|
+
}
|
|
66
|
+
return { ok: drift === 0 && r.failed === 0, drift, lines };
|
|
67
|
+
}
|
|
68
|
+
export function formatPlanReport(input) {
|
|
69
|
+
const { counts, selection } = input;
|
|
70
|
+
const lines = [
|
|
71
|
+
`population: ${input.population} — ${POPULATIONS[input.population]}`,
|
|
72
|
+
`mode: ${input.apply ? "APPLY (writing)" : "DRY RUN (reads only)"}`,
|
|
73
|
+
``,
|
|
74
|
+
`candidates ${selection.selected.length}` +
|
|
75
|
+
` (excluded: ${selection.excludedPopulation} out of population,` +
|
|
76
|
+
` ${selection.excludedStaff} staff/QA, ${selection.excludedNoEmail} with no email)`,
|
|
77
|
+
`no-op ${counts.noop} merge ${counts.merge} create ${counts.create} failed ${counts.failed}`,
|
|
78
|
+
];
|
|
79
|
+
if (input.stripeOrphans !== undefined) {
|
|
80
|
+
lines.push(``, `contacts with stripe_customer_id and no clerk_user_id: ${input.stripeOrphans}`, ` (the orphan class — a contact Stripe minted at checkout with no join key.`, ` Merge targets here, and the standing counter for them belongs to traction#117.)`);
|
|
81
|
+
}
|
|
82
|
+
if (input.listCaveat === true && counts.create + counts.merge > 0) {
|
|
83
|
+
lines.push(``, `List 53 "Vibes DIY Users" is DYNAMIC on vibes_diy_signup_date IS_KNOWN, so up to`, `${counts.create + counts.merge} of these contacts will join it without anyone deciding to add them.`, `Accepted caveat, not a mailability breach: hs_marketable_status stays false and is`, `read-only via the API. Nothing here writes a list, a consent property or a mailable state.`);
|
|
84
|
+
}
|
|
85
|
+
return lines.join("\n");
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=backfill-hubspot-contacts-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backfill-hubspot-contacts-util.js","sourceRoot":"","sources":["../../jsr/usage-report/backfill-hubspot-contacts-util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { Pool } from "@neondatabase/serverless";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import { Result, exception2Result } from "@adviser/cement";
|
|
4
|
+
import { formatError, loadDevVars } from "./usage-report-util.js";
|
|
5
|
+
import { resolveExclusions } from "./new-user-alert-util.js";
|
|
6
|
+
import { countPlan, formatPlanReport, isPopulationKey, POPULATIONS, reconcile, selectAccounts, } from "./backfill-hubspot-contacts-util.js";
|
|
7
|
+
import { planSignupContact, upsertSignupContact } from "../intern/hubspot-signup.js";
|
|
8
|
+
const CLERK_PAGE_SIZE = 500;
|
|
9
|
+
const REQUEST_GAP_MS = 60;
|
|
10
|
+
function arg(name) {
|
|
11
|
+
const i = process.argv.indexOf(name);
|
|
12
|
+
return i >= 0 ? process.argv[i + 1] : undefined;
|
|
13
|
+
}
|
|
14
|
+
function flag(name) {
|
|
15
|
+
return process.argv.includes(name);
|
|
16
|
+
}
|
|
17
|
+
function asString(v) {
|
|
18
|
+
return typeof v === "string" ? v : undefined;
|
|
19
|
+
}
|
|
20
|
+
function sleep(ms) {
|
|
21
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
22
|
+
}
|
|
23
|
+
async function clerkAllUsers(key) {
|
|
24
|
+
const users = [];
|
|
25
|
+
for (let offset = 0;; offset += CLERK_PAGE_SIZE) {
|
|
26
|
+
const res = await fetch(`https://api.clerk.com/v1/users?limit=${CLERK_PAGE_SIZE}&offset=${offset}&order_by=%2Bcreated_at`, {
|
|
27
|
+
headers: { authorization: `Bearer ${key}` },
|
|
28
|
+
});
|
|
29
|
+
if (!res.ok)
|
|
30
|
+
throw new Error(`clerk GET /users failed: ${res.status}`);
|
|
31
|
+
const rows = (await res.json());
|
|
32
|
+
for (const r of rows) {
|
|
33
|
+
const id = asString(r.id);
|
|
34
|
+
if (id === undefined)
|
|
35
|
+
continue;
|
|
36
|
+
users.push({
|
|
37
|
+
id,
|
|
38
|
+
username: asString(r.username) ?? null,
|
|
39
|
+
first_name: asString(r.first_name) ?? null,
|
|
40
|
+
last_name: asString(r.last_name) ?? null,
|
|
41
|
+
email_addresses: (Array.isArray(r.email_addresses) ? r.email_addresses : []).map((e) => ({
|
|
42
|
+
id: asString(e.id),
|
|
43
|
+
email_address: asString(e.email_address) ?? "",
|
|
44
|
+
})),
|
|
45
|
+
created_at: typeof r.created_at === "number" ? r.created_at : 0,
|
|
46
|
+
primary_email_address_id: asString(r.primary_email_address_id) ?? null,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (rows.length < CLERK_PAGE_SIZE)
|
|
50
|
+
return users;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function contactCount(token, filters) {
|
|
54
|
+
const rRes = await exception2Result(() => fetch("https://api.hubapi.com/crm/v3/objects/contacts/search", {
|
|
55
|
+
method: "POST",
|
|
56
|
+
headers: { authorization: `Bearer ${token}`, "Content-Type": "application/json" },
|
|
57
|
+
body: JSON.stringify({ filterGroups: [{ filters }], properties: ["email"], limit: 1 }),
|
|
58
|
+
}));
|
|
59
|
+
if (rRes.isErr())
|
|
60
|
+
return Result.Err(rRes.Err());
|
|
61
|
+
if (rRes.Ok().ok === false)
|
|
62
|
+
return Result.Err(new Error(`hubspot count failed: ${rRes.Ok().status}`));
|
|
63
|
+
const rBody = await exception2Result(() => rRes.Ok().json());
|
|
64
|
+
if (rBody.isErr())
|
|
65
|
+
return Result.Err(rBody.Err());
|
|
66
|
+
return Result.Ok(rBody.Ok().total ?? 0);
|
|
67
|
+
}
|
|
68
|
+
async function run() {
|
|
69
|
+
loadDevVars();
|
|
70
|
+
const population = arg("--population");
|
|
71
|
+
if (!isPopulationKey(population)) {
|
|
72
|
+
return Result.Err([
|
|
73
|
+
"usage: admin:backfill-hubspot-contacts --population <key> [--apply] [--limit N] [--only ids] [--out FILE]",
|
|
74
|
+
...Object.entries(POPULATIONS).map(([key, description]) => ` --population ${key.padEnd(8)} ${description}`),
|
|
75
|
+
"",
|
|
76
|
+
"--population has no default on purpose: it is the decision the issue asks a human to make.",
|
|
77
|
+
].join("\n"));
|
|
78
|
+
}
|
|
79
|
+
const clerkKey = process.env["CLERK_SECRET_KEY"];
|
|
80
|
+
if (clerkKey === undefined || clerkKey === "")
|
|
81
|
+
return Result.Err("CLERK_SECRET_KEY is required");
|
|
82
|
+
const token = process.env["HUBSPOT_TOKEN"];
|
|
83
|
+
if (token === undefined || token === "")
|
|
84
|
+
return Result.Err("HUBSPOT_TOKEN is required (private app, contacts read+write)");
|
|
85
|
+
const connectionString = process.env["NEON_DATABASE_URL"] ?? process.env["DATABASE_URL"];
|
|
86
|
+
if (connectionString === undefined)
|
|
87
|
+
return Result.Err("NEON_DATABASE_URL is required (prod Neon)");
|
|
88
|
+
const apply = flag("--apply");
|
|
89
|
+
const limitRaw = arg("--limit");
|
|
90
|
+
const limit = limitRaw === undefined ? Number.POSITIVE_INFINITY : Number(limitRaw);
|
|
91
|
+
if (!Number.isFinite(limit) && limitRaw !== undefined)
|
|
92
|
+
return Result.Err("--limit must be a number");
|
|
93
|
+
const only = new Set((arg("--only") ?? "")
|
|
94
|
+
.split(",")
|
|
95
|
+
.map((s) => s.trim())
|
|
96
|
+
.filter((s) => s !== ""));
|
|
97
|
+
const exclusions = resolveExclusions({
|
|
98
|
+
ALERT_EXCLUDE_DOMAINS: process.env["ALERT_EXCLUDE_DOMAINS"],
|
|
99
|
+
ALERT_EXCLUDE_USER_IDS: process.env["ALERT_EXCLUDE_USER_IDS"],
|
|
100
|
+
});
|
|
101
|
+
const pool = new Pool({ connectionString });
|
|
102
|
+
const result = await exception2Result(async () => {
|
|
103
|
+
const clerkUsers = await clerkAllUsers(clerkKey);
|
|
104
|
+
const handleRes = await pool.query(`select "userId", "userSlug" as handle from "UserSlugBindings" order by "userId", created`);
|
|
105
|
+
const handles = new Map();
|
|
106
|
+
for (const r of handleRes.rows) {
|
|
107
|
+
handles.set(r.userId, [...(handles.get(r.userId) ?? []), r.handle]);
|
|
108
|
+
}
|
|
109
|
+
const turnRes = await pool.query(`select "userId", count(*)::int as turns from "PromptContexts" group by "userId"`);
|
|
110
|
+
const turns = new Map();
|
|
111
|
+
for (const r of turnRes.rows) {
|
|
112
|
+
turns.set(r.userId, r.turns);
|
|
113
|
+
}
|
|
114
|
+
console.log(`[backfill] clerk_accounts=${clerkUsers.length} accounts_with_handle=${handles.size} ` +
|
|
115
|
+
`handle_rows=${handleRes.rows.length} accounts_with_codegen_turn=${turns.size}`);
|
|
116
|
+
const accounts = clerkUsers.map((u) => ({
|
|
117
|
+
userId: u.id,
|
|
118
|
+
email: u.email_addresses.find((e) => e.id === u.primary_email_address_id)?.email_address ?? u.email_addresses[0]?.email_address,
|
|
119
|
+
handles: handles.get(u.id) ?? [],
|
|
120
|
+
codegenTurns: turns.get(u.id) ?? 0,
|
|
121
|
+
}));
|
|
122
|
+
const selection = selectAccounts(accounts, population, exclusions);
|
|
123
|
+
const byId = new Map(clerkUsers.map((u) => [u.id, u]));
|
|
124
|
+
const candidates = selection.selected.filter((a) => only.size === 0 || only.has(a.userId));
|
|
125
|
+
const rBefore = await contactCount(token, [{ propertyName: "clerk_user_id", operator: "HAS_PROPERTY" }]);
|
|
126
|
+
if (rBefore.isErr())
|
|
127
|
+
throw rBefore.Err();
|
|
128
|
+
const linkedBefore = rBefore.Ok();
|
|
129
|
+
const entries = [];
|
|
130
|
+
let acted = 0;
|
|
131
|
+
let created = 0;
|
|
132
|
+
let merged = 0;
|
|
133
|
+
for (const account of candidates) {
|
|
134
|
+
const data = byId.get(account.userId);
|
|
135
|
+
if (data === undefined)
|
|
136
|
+
continue;
|
|
137
|
+
const shared = {
|
|
138
|
+
token,
|
|
139
|
+
data,
|
|
140
|
+
handles: account.handles,
|
|
141
|
+
enrichWhenLinked: true,
|
|
142
|
+
};
|
|
143
|
+
const rPlan = await planSignupContact(shared);
|
|
144
|
+
await sleep(REQUEST_GAP_MS);
|
|
145
|
+
if (rPlan.isErr()) {
|
|
146
|
+
entries.push({ userId: account.userId, handles: account.handles, action: "failed", reason: rPlan.Err().message });
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const plan = rPlan.Ok();
|
|
150
|
+
if (plan.action === "noop" || !apply || acted >= limit) {
|
|
151
|
+
entries.push({
|
|
152
|
+
userId: account.userId,
|
|
153
|
+
handles: account.handles,
|
|
154
|
+
action: plan.action,
|
|
155
|
+
contactId: plan.action === "create" ? undefined : plan.id,
|
|
156
|
+
reason: plan.action !== "noop" && apply && acted >= limit ? "not applied: --limit reached" : undefined,
|
|
157
|
+
});
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
const rWrite = await upsertSignupContact(shared);
|
|
161
|
+
await sleep(REQUEST_GAP_MS);
|
|
162
|
+
if (rWrite.isErr()) {
|
|
163
|
+
entries.push({ userId: account.userId, handles: account.handles, action: "failed", reason: rWrite.Err().message });
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
acted = acted + 1;
|
|
167
|
+
const write = rWrite.Ok();
|
|
168
|
+
if (write.action === "create")
|
|
169
|
+
created = created + 1;
|
|
170
|
+
if (write.action === "merge")
|
|
171
|
+
merged = merged + 1;
|
|
172
|
+
entries.push({ userId: account.userId, handles: account.handles, action: write.action, contactId: write.id });
|
|
173
|
+
}
|
|
174
|
+
const rOrphans = await contactCount(token, [
|
|
175
|
+
{ propertyName: "stripe_customer_id", operator: "HAS_PROPERTY" },
|
|
176
|
+
{ propertyName: "clerk_user_id", operator: "NOT_HAS_PROPERTY" },
|
|
177
|
+
]);
|
|
178
|
+
const counts = countPlan(entries);
|
|
179
|
+
console.log("");
|
|
180
|
+
console.log(formatPlanReport({
|
|
181
|
+
population: population,
|
|
182
|
+
selection,
|
|
183
|
+
counts,
|
|
184
|
+
apply,
|
|
185
|
+
stripeOrphans: rOrphans.isOk() ? rOrphans.Ok() : undefined,
|
|
186
|
+
listCaveat: true,
|
|
187
|
+
}));
|
|
188
|
+
const out = arg("--out");
|
|
189
|
+
if (out !== undefined) {
|
|
190
|
+
fs.writeFileSync(out, JSON.stringify({ population, apply, counts, entries }, null, 2));
|
|
191
|
+
console.log(`\nplan written to ${out} (clerk ids and handles only — no addresses)`);
|
|
192
|
+
}
|
|
193
|
+
if (!apply) {
|
|
194
|
+
console.log("\nDRY RUN — nothing was written. Re-run with --apply once the diff above has been read.");
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
await sleep(10_000);
|
|
198
|
+
const rAfter = await contactCount(token, [{ propertyName: "clerk_user_id", operator: "HAS_PROPERTY" }]);
|
|
199
|
+
if (rAfter.isErr())
|
|
200
|
+
throw rAfter.Err();
|
|
201
|
+
const verdict = reconcile({
|
|
202
|
+
intended: candidates.length,
|
|
203
|
+
linkedBefore,
|
|
204
|
+
linkedContacts: rAfter.Ok(),
|
|
205
|
+
created,
|
|
206
|
+
merged,
|
|
207
|
+
failed: counts.failed,
|
|
208
|
+
});
|
|
209
|
+
console.log(`\nreconciliation${verdict.ok ? "" : " — NEEDS EXPLAINING"}:`);
|
|
210
|
+
for (const line of verdict.lines)
|
|
211
|
+
console.log(` ${line}`);
|
|
212
|
+
});
|
|
213
|
+
await pool.end();
|
|
214
|
+
return result;
|
|
215
|
+
}
|
|
216
|
+
run().then((result) => {
|
|
217
|
+
if (result.isErr()) {
|
|
218
|
+
console.error(formatError(result.Err()));
|
|
219
|
+
process.exitCode = 1;
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
//# sourceMappingURL=backfill-hubspot-contacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backfill-hubspot-contacts.js","sourceRoot":"","sources":["../../jsr/usage-report/backfill-hubspot-contacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,11 +91,71 @@ function parseArgs(argv) {
|
|
|
91
91
|
}
|
|
92
92
|
return Result.Ok({ command, args, limit });
|
|
93
93
|
}
|
|
94
|
+
async function queryReadOnly(pool, sql, params = []) {
|
|
95
|
+
const client = await pool.connect();
|
|
96
|
+
try {
|
|
97
|
+
await client.query("begin read only");
|
|
98
|
+
return await client.query(sql, params);
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
await client.query("rollback").catch(() => undefined);
|
|
102
|
+
client.release();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function hasStatementSeparator(sql) {
|
|
106
|
+
let i = 0;
|
|
107
|
+
while (i < sql.length) {
|
|
108
|
+
const ch = sql[i];
|
|
109
|
+
if (ch === "'" || ch === '"') {
|
|
110
|
+
const quote = ch;
|
|
111
|
+
i++;
|
|
112
|
+
while (i < sql.length) {
|
|
113
|
+
if (sql[i] === quote) {
|
|
114
|
+
if (sql[i + 1] === quote)
|
|
115
|
+
i += 2;
|
|
116
|
+
else
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
else
|
|
120
|
+
i++;
|
|
121
|
+
}
|
|
122
|
+
i++;
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (ch === "$") {
|
|
126
|
+
const tag = /^\$[A-Za-z_0-9]*\$/.exec(sql.slice(i));
|
|
127
|
+
if (tag !== null) {
|
|
128
|
+
const close = sql.indexOf(tag[0], i + tag[0].length);
|
|
129
|
+
i = close === -1 ? sql.length : close + tag[0].length;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (ch === "-" && sql[i + 1] === "-") {
|
|
134
|
+
const nl = sql.indexOf("\n", i);
|
|
135
|
+
i = nl === -1 ? sql.length : nl + 1;
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
if (ch === "/" && sql[i + 1] === "*") {
|
|
139
|
+
const close = sql.indexOf("*/", i + 2);
|
|
140
|
+
i = close === -1 ? sql.length : close + 2;
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
if (ch === ";") {
|
|
144
|
+
if (sql.slice(i + 1).trim() !== "")
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
i++;
|
|
148
|
+
}
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
94
151
|
function assertReadonlySql(sql) {
|
|
95
152
|
const normalized = sql.trim().replace(/;+$/, "").toLowerCase();
|
|
96
153
|
if (normalized === "") {
|
|
97
154
|
return Result.Err("SQL is empty");
|
|
98
155
|
}
|
|
156
|
+
if (hasStatementSeparator(sql)) {
|
|
157
|
+
return Result.Err("Only a single statement is allowed (no `;`-separated statements)");
|
|
158
|
+
}
|
|
99
159
|
if (!(normalized.startsWith("select ") ||
|
|
100
160
|
normalized.startsWith("with ") ||
|
|
101
161
|
normalized.startsWith("show ") ||
|
|
@@ -143,7 +203,7 @@ async function run() {
|
|
|
143
203
|
}
|
|
144
204
|
const table = rTable.Ok();
|
|
145
205
|
const sql = `select * from ${quoteIdentifier(table.table_schema)}.${quoteIdentifier(table.table_name)} order by 1 desc limit $1`;
|
|
146
|
-
const queryResult = await pool
|
|
206
|
+
const queryResult = await queryReadOnly(pool, sql, [limit]);
|
|
147
207
|
console.log(JSON.stringify({
|
|
148
208
|
table: `${table.table_schema}.${table.table_name}`,
|
|
149
209
|
rowCount: queryResult.rowCount,
|
|
@@ -157,7 +217,7 @@ async function run() {
|
|
|
157
217
|
if (rSql.isErr()) {
|
|
158
218
|
throw new Error(rSql.Err().message);
|
|
159
219
|
}
|
|
160
|
-
const queryResult = await pool
|
|
220
|
+
const queryResult = await queryReadOnly(pool, sql);
|
|
161
221
|
console.log(JSON.stringify({
|
|
162
222
|
rowCount: queryResult.rowCount,
|
|
163
223
|
rows: queryResult.rows,
|