{"version":3,"file":"agenticSignup.cjs","sources":["../../../../src/auth/agenticSignup.ts"],"sourcesContent":["import type { AgenticSignupOptions, AgenticSignupResult } from \"./types\";\nimport { loadKeypair } from \"./loadKeypair\";\nimport { getAddress } from \"./getAddress\";\nimport { signAuthMessage } from \"./signAuthMessage\";\nimport { walletSignup } from \"./walletSignup\";\nimport { listProjects } from \"./listProjects\";\nimport { getProject } from \"./getProject\";\nimport { executeCheckout, executeUpgrade } from \"./checkout\";\nimport { OPENPAY_PLANS } from \"./constants\";\nimport { isOpenPayPlan, buildEndpoints } from \"./signupHelpers\";\nimport { executeBasicSignup } from \"./basicSignup\";\n\nexport async function agenticSignup(\n  options: AgenticSignupOptions\n): Promise<AgenticSignupResult> {\n  const { secretKey, userAgent, email, firstName, lastName } = options;\n\n  // Normalize plan: undefined/empty → \"basic\"\n  const rawPlan = options.plan?.trim() || \"\";\n  const plan = rawPlan === \"\" ? \"basic\" : rawPlan.toLowerCase();\n\n  // Validate plan\n  if (plan !== \"basic\" && !isOpenPayPlan(plan)) {\n    throw new Error(\n      `Unknown plan: ${plan}. Available: basic, ${OPENPAY_PLANS.join(\", \")}`\n    );\n  }\n\n  // Load keypair and derive address\n  const keypair = loadKeypair(secretKey);\n  const walletAddress = await getAddress(keypair);\n\n  // Authenticate\n  const { message, signature } = await signAuthMessage(secretKey);\n  const auth = await walletSignup(message, signature, walletAddress, userAgent);\n  const jwt = auth.token;\n\n  // Check for existing projects\n  const existingProjects = await listProjects(jwt, userAgent);\n\n  if (existingProjects.length > 0) {\n    const project = existingProjects[0];\n    const projectDetails = await getProject(jwt, project.id, userAgent);\n    const apiKey = projectDetails.apiKeys?.[0]?.keyId || null;\n\n    // Existing user + OpenPay plan → upgrade\n    if (isOpenPayPlan(plan)) {\n      const upgradeResult = await executeUpgrade(\n        secretKey,\n        jwt,\n        plan,\n        options.period ?? \"monthly\",\n        project.id,\n        options.couponCode,\n        userAgent\n      );\n\n      if (upgradeResult.status !== \"completed\") {\n        throw new Error(\n          `Checkout ${upgradeResult.status}${upgradeResult.error ? `: ${upgradeResult.error}` : \"\"}${upgradeResult.txSignature ? `. TX: ${upgradeResult.txSignature}` : \"\"}`\n        );\n      }\n\n      return {\n        status: \"upgraded\",\n        jwt,\n        walletAddress,\n        projectId: project.id,\n        apiKey,\n        endpoints: apiKey ? buildEndpoints(apiKey) : null,\n        credits: null,\n        txSignature: upgradeResult.txSignature ?? undefined,\n      };\n    }\n\n    // Existing user + basic plan → return existing project\n    return {\n      status: \"existing_project\",\n      jwt,\n      walletAddress,\n      projectId: project.id,\n      apiKey,\n      endpoints: apiKey ? buildEndpoints(apiKey) : null,\n      credits: projectDetails.creditsUsage?.remainingCredits ?? null,\n    };\n  }\n\n  // ── New user paths ──\n\n  if (isOpenPayPlan(plan)) {\n    // Validate required contact info for new subscriptions\n    if (!email || !firstName || !lastName) {\n      const missing = [\n        !email && \"email\",\n        !firstName && \"firstName\",\n        !lastName && \"lastName\",\n      ].filter(Boolean);\n      throw new Error(\n        `Paid plans require contact info for new accounts. Missing: ${missing.join(\", \")}. ` +\n          `Pass --email, --first-name, and --last-name.`\n      );\n    }\n\n    // OpenPay checkout for developer/business/professional\n    const checkoutResult = await executeCheckout(\n      secretKey,\n      jwt,\n      {\n        plan,\n        period: options.period ?? \"monthly\",\n        refId: auth.refId,\n        email,\n        firstName,\n        lastName,\n        couponCode: options.couponCode,\n      },\n      userAgent\n    );\n\n    if (checkoutResult.status !== \"completed\") {\n      throw new Error(\n        `Checkout ${checkoutResult.status}${checkoutResult.error ? `: ${checkoutResult.error}` : \"\"}${checkoutResult.txSignature ? `. TX: ${checkoutResult.txSignature}` : \"\"}`\n      );\n    }\n\n    if (!checkoutResult.projectId) {\n      throw new Error(\n        \"Checkout completed but no project was provisioned. \" +\n          `Payment intent: ${checkoutResult.paymentIntentId}`\n      );\n    }\n\n    return {\n      status: \"success\",\n      jwt,\n      walletAddress,\n      projectId: checkoutResult.projectId,\n      apiKey: checkoutResult.apiKey || null,\n      endpoints: checkoutResult.apiKey\n        ? buildEndpoints(checkoutResult.apiKey)\n        : null,\n      credits: null,\n      txSignature: checkoutResult.txSignature ?? undefined,\n    };\n  }\n\n  // Basic plan ($1 USDC) → balance checks → pay → createProject\n  return executeBasicSignup(secretKey, jwt, walletAddress, userAgent);\n}\n"],"names":["isOpenPayPlan","OPENPAY_PLANS","loadKeypair","getAddress","signAuthMessage","walletSignup","listProjects","getProject","executeUpgrade","buildEndpoints","executeCheckout","executeBasicSignup"],"mappings":"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"}