···
export const handler = define.handlers({
6
+
console.log("Status check: Starting");
const url = new URL(ctx.req.url);
const params = new URLSearchParams(url.search);
const step = params.get("step");
10
+
console.log("Status check: Step", step);
12
+
console.log("Status check: Getting agents");
const oldAgent = await getSessionAgent(ctx.req);
const newAgent = await getSessionAgent(ctx.req, new Response(), true);
12
-
if (!oldAgent || !newAgent) return new Response("Unauthorized", { status: 401 });
16
+
if (!oldAgent || !newAgent) {
17
+
console.log("Status check: Unauthorized - missing agents", {
18
+
hasOldAgent: !!oldAgent,
19
+
hasNewAgent: !!newAgent
21
+
return new Response("Unauthorized", { status: 401 });
24
+
console.log("Status check: Fetching account statuses");
const oldStatus = await oldAgent.com.atproto.server.checkAccountStatus();
const newStatus = await newAgent.com.atproto.server.checkAccountStatus();
16
-
if (!oldStatus.data || !newStatus.data) return new Response("Could not verify status", { status: 500 });
28
+
if (!oldStatus.data || !newStatus.data) {
29
+
console.error("Status check: Failed to verify status", {
30
+
hasOldStatus: !!oldStatus.data,
31
+
hasNewStatus: !!newStatus.data
33
+
return new Response("Could not verify status", { status: 500 });
36
+
console.log("Status check: Account statuses", {
37
+
old: oldStatus.data,
const readyToContinue = () => {
43
+
console.log("Status check: Evaluating step", step);
47
+
console.log("Status check: Step 1 ready");
50
+
console.log("Status check: Step 1 not ready - new account status not available");
return { ready: false, reason: "New account status not available" };
28
-
if (newStatus.data.repoCommit &&
54
+
const isReady = newStatus.data.repoCommit &&
newStatus.data.indexedRecords === oldStatus.data.indexedRecords &&
newStatus.data.privateStateValues === oldStatus.data.privateStateValues &&
newStatus.data.expectedBlobs === newStatus.data.importedBlobs &&
32
-
newStatus.data.importedBlobs === oldStatus.data.importedBlobs) {
58
+
newStatus.data.importedBlobs === oldStatus.data.importedBlobs;
61
+
console.log("Status check: Step 2 ready");
if (!newStatus.data.repoCommit) reasons.push("Repository not imported.");
if (newStatus.data.indexedRecords < oldStatus.data.indexedRecords)
···
reasons.push("Expected blobs not fully imported.");
if (newStatus.data.importedBlobs < oldStatus.data.importedBlobs)
reasons.push("Not all blobs imported.");
76
+
console.log("Status check: Step 2 not ready", { reasons });
return { ready: false, reason: reasons.join(", ") };
if (newStatus.data.validDid) {
81
+
console.log("Status check: Step 3 ready");
84
+
console.log("Status check: Step 3 not ready - DID not valid");
return { ready: false, reason: "DID not valid" };
if (newStatus.data.activated === true && oldStatus.data.activated === false) {
89
+
console.log("Status check: Step 4 ready");
92
+
console.log("Status check: Step 4 not ready - Account not activated");
return { ready: false, reason: "Account not activated" };
97
+
console.log("Status check: No step specified, returning ready");
···
116
+
console.log("Status check: Complete", status);
return Response.json(status);