#!/usr/bin/env bash
# Builds a throw-away test folder: real Mindavio files (auth, validation, routes, migrations) + fakes, then runs the test.
# Usage: bash docs/finance-api/verification/setup.sh <empty-temp-dir>
set -euo pipefail
REPO="$(cd "$(dirname "$0")/../../.." && pwd)"
T="${1:?temp dir}"
mkdir -p "$T/lib"
cd "$T"
[ -d node_modules/@electric-sql/pglite ] || { npm init -y >/dev/null && npm install --silent @electric-sql/pglite@0.3; }
echo '{"type":"module"}' > lib/package.json

V="$REPO/docs/finance-api/verification"
cp "$V/fakes.js" lib/fakes.ts
for f in db admin next-server security; do echo 'export * from "./fakes.ts";' > "lib/$f.ts"; done
cp "$REPO/src/lib/developers/auth.ts" lib/auth.ts
cp "$REPO/src/lib/developers/scopes.ts" lib/scopes.ts
cp "$REPO/src/lib/developers/token-store.ts" lib/token-store.ts
cp "$REPO/src/lib/finance/api-validation.ts" lib/api-validation.ts
cp "$REPO/src/lib/finance/api-server.ts" lib/api-server.ts
A="$REPO/src/app/api/v1/finances"
cp "$A/transactions/route.ts" lib/r-transactions.ts
cp "$A/transactions/[id]/route.ts" lib/r-transaction-id.ts
cp "$A/recurring/route.ts" lib/r-recurring.ts
cp "$A/recurring/[id]/route.ts" lib/r-recurring-id.ts
cp "$A/categories/route.ts" lib/r-categories.ts
cp "$A/budgets/route.ts" lib/r-budgets.ts
cp "$A/summary/route.ts" lib/r-summary.ts
cp "$REPO/src/app/api/v1/vault/documents/route.ts" lib/r-vault.ts
sed -i -E \
  -e 's#from "next/server"#from "./next-server.ts"#' \
  -e 's#from "@/lib/db/postgres"#from "./db.ts"#' \
  -e 's#from "@/lib/supabase/admin"#from "./admin.ts"#' \
  -e 's#from "@/lib/api/security"#from "./security.ts"#' \
  -e 's#from "@/lib/developers/auth"#from "./auth.ts"#' \
  -e 's#from "@/lib/developers/scopes"#from "./scopes.ts"#' \
  -e 's#from "@/lib/finance/api-validation"#from "./api-validation.ts"#' \
  -e 's#from "@/lib/finance/api-server"#from "./api-server.ts"#' \
  -e 's#^import type .* from "@/types";##' \
  lib/*.ts
mkdir -p migrations
cp "$REPO/supabase/migrations/00039_finance_phase1.sql" "$REPO/supabase/migrations/00040_finance_phase15.sql" \
   "$REPO/supabase/migrations/20261012000002_finance_api_access.sql" \
   "$REPO/supabase/migrations/20261013000001_developer_token_scopes.sql" \
   "$REPO/supabase/migrations/20261013000002_finance_business_flag.sql" migrations/
cp "$V/finance-api.test.mjs" run.mjs
node --experimental-transform-types --disable-warning=ExperimentalWarning --test run.mjs
