← back to drcmda__negative-support

Function bodies 165 total

All specs Real LLM only Function bodies
__emval_new_cstring function · javascript · L2777-L2780 (4 LOC)
packages/frontend/public/manifold.js
    function __emval_new_cstring(v) {
      v >>>= 0;
      return Emval.toHandle(getStringOrSymbol(v))
    }
__emval_new_object function · javascript · L2781-L2783 (3 LOC)
packages/frontend/public/manifold.js
    function __emval_new_object() {
      return Emval.toHandle({})
    }
__emval_run_destructors function · javascript · L2784-L2789 (6 LOC)
packages/frontend/public/manifold.js
    function __emval_run_destructors(handle) {
      handle >>>= 0;
      var destructors = Emval.toValue(handle);
      runDestructors(destructors);
      __emval_decref(handle)
    }
__emval_set_property function · javascript · L2790-L2798 (9 LOC)
packages/frontend/public/manifold.js
    function __emval_set_property(handle, key, value) {
      handle >>>= 0;
      key >>>= 0;
      value >>>= 0;
      handle = Emval.toValue(handle);
      key = Emval.toValue(key);
      value = Emval.toValue(value);
      handle[key] = value
    }
__emval_take_value function · javascript · L2799-L2805 (7 LOC)
packages/frontend/public/manifold.js
    function __emval_take_value(type, arg) {
      type >>>= 0;
      arg >>>= 0;
      type = requireRegisteredType(type, '_emval_take_value');
      var v = type['readValueFromPointer'](arg);
      return Emval.toHandle(v)
    }
_emscripten_resize_heap function · javascript · L2819-L2839 (21 LOC)
packages/frontend/public/manifold.js
    function _emscripten_resize_heap(requestedSize) {
      requestedSize >>>= 0;
      var oldSize = HEAPU8.length;
      var maxHeapSize = getHeapMax();
      if (requestedSize > maxHeapSize) {
        return false
      }
      for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
        var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
        overGrownHeapSize =
            Math.min(overGrownHeapSize, requestedSize + 100663296);
        var newSize = Math.min(
            maxHeapSize,
            alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));
        var replacement = growMemory(newSize);
        if (replacement) {
          return true
        }
      }
      return false
    }
applySignatureConversions function · javascript · L2991-L3002 (12 LOC)
packages/frontend/public/manifold.js
    function applySignatureConversions(wasmExports) {
      wasmExports = Object.assign({}, wasmExports);
      var makeWrapper_pp = f => a0 => f(a0) >>> 0;
      var makeWrapper_p = f => () => f() >>> 0;
      wasmExports['K'] = makeWrapper_pp(wasmExports['K']);
      wasmExports['N'] = makeWrapper_pp(wasmExports['N']);
      wasmExports['_emscripten_stack_alloc'] =
          makeWrapper_pp(wasmExports['_emscripten_stack_alloc']);
      wasmExports['emscripten_stack_get_current'] =
          makeWrapper_p(wasmExports['emscripten_stack_get_current']);
      return wasmExports
    }
If a scraper extracted this row, it came from Repobility (https://repobility.com)
run function · javascript · L3005-L3032 (28 LOC)
packages/frontend/public/manifold.js
    function run() {
      if (runDependencies > 0) {
        dependenciesFulfilled = run;
        return
      }
      preRun();
      if (runDependencies > 0) {
        dependenciesFulfilled = run;
        return
      }
      function doRun() {
        Module['calledRun'] = true;
        if (ABORT) return;
        initRuntime();
        readyPromiseResolve(Module);
        Module['onRuntimeInitialized']?.();
        postRun()
      }
      if (Module['setStatus']) {
        Module['setStatus']('Running...');
        setTimeout(() => {
          setTimeout(() => Module['setStatus'](''), 1);
          doRun()
        }, 1)
      } else {
        doRun()
      }
    }
doRun function · javascript · L3015-L3022 (8 LOC)
packages/frontend/public/manifold.js
      function doRun() {
        Module['calledRun'] = true;
        if (ABORT) return;
        initRuntime();
        readyPromiseResolve(Module);
        Module['onRuntimeInitialized']?.();
        postRun()
      }
App function · typescript · L10-L26 (17 LOC)
packages/frontend/src/App.tsx
export default function App() {
  return (
    <div className="min-h-screen flex flex-col">
      <Header />
      <main className="flex-1 pt-14">
        <Routes>
          <Route path="/" element={<Landing />} />
          <Route path="/generate" element={<Generate />} />
          <Route path="/success" element={<Success />} />
          <Route path="/docs" element={<Docs />} />
          <Route path="/recover" element={<Recover />} />
        </Routes>
      </main>
      <Footer />
    </div>
  );
}
CopyToken function · typescript · L7-L27 (21 LOC)
packages/frontend/src/components/CopyToken.tsx
export default function CopyToken({ token }: Props) {
  const [copied, setCopied] = useState(false);

  const handleCopy = async () => {
    await navigator.clipboard.writeText(token);
    setCopied(true);
    setTimeout(() => setCopied(false), 2000);
  };

  return (
    <div className="flex items-center gap-3 rounded-xl p-4 max-w-[500px] mx-auto my-4 border border-accent/20 bg-accent-glow">
      <code className="font-mono text-xs text-accent flex-1 break-all">{token}</code>
      <button
        className="bg-accent text-base border-none px-4 py-2 rounded-lg cursor-pointer text-sm font-medium whitespace-nowrap hover:brightness-110 transition-all"
        onClick={handleCopy}
      >
        {copied ? "Copied!" : "Copy"}
      </button>
    </div>
  );
}
FileDropZone function · typescript · L10-L95 (86 LOC)
packages/frontend/src/components/FileDropZone.tsx
export default function FileDropZone({ onFile, disabled }: Props) {
  const [isDragging, setIsDragging] = useState(false);
  const [error, setError] = useState<string | null>(null);
  const [fileName, setFileName] = useState<string | null>(null);
  const inputRef = useRef<HTMLInputElement>(null);

  const handleFile = useCallback(
    (file: File) => {
      const ext = '.' + file.name.toLowerCase().split('.').pop();
      if (!ACCEPTED.includes(ext)) {
        setError(`Unsupported format: ${ext}. Use STL, OBJ, or STEP files.`);
        return;
      }
      setError(null);
      setFileName(file.name);
      onFile(file);
    },
    [onFile]
  );

  const onDrop = useCallback(
    (e: React.DragEvent) => {
      e.preventDefault();
      setIsDragging(false);
      if (disabled) return;
      const file = e.dataTransfer.files[0];
      if (file) handleFile(file);
    },
    [handleFile, disabled]
  );

  const onDragOver = useCallback(
    (e: React.DragEvent) => {
      e.preventDef
Footer function · typescript · L1-L36 (36 LOC)
packages/frontend/src/components/Footer.tsx
export default function Footer() {
  return (
    <footer className='border-t border-border py-10'>
      <div className='max-w-[1200px] mx-auto px-6 flex items-center justify-between max-sm:flex-col max-sm:gap-4'>
        <p className='font-mono text-[10px] tracking-[0.08em] text-primary/20'>
          &copy; {new Date().getFullYear()} negative-support
        </p>
        <div className='flex items-center gap-6'>
          <a
            href='https://github.com/drcmda/negative-support/blob/master/LICENSE.md'
            target='_blank'
            rel='noopener noreferrer'
            className='font-mono text-[10px] tracking-[0.08em] text-primary/20 hover:text-primary/50 transition-colors'>
            License
          </a>
          <a
            href='https://github.com/drcmda/negative-support/blob/master/TERMS.md'
            target='_blank'
            rel='noopener noreferrer'
            className='font-mono text-[10px] tracking-[0.08em] text-primary/20 hover:text-primary/5
Header function · typescript · L8-L298 (291 LOC)
packages/frontend/src/components/Header.tsx
export default function Header() {
  const navigate = useNavigate()
  const location = useLocation()
  const { user, license, freeRemaining, loading } = useAuth()
  const [open, setOpen] = useState(false)
  const [menuOpen, setMenuOpen] = useState(false)
  const [copied, setCopied] = useState(false)
  const dropdownRef = useRef<HTMLDivElement>(null)

  const handlePricing = useCallback(
    (e: React.MouseEvent) => {
      e.preventDefault()
      setMenuOpen(false)
      if (location.pathname === '/') {
        document.getElementById('pricing')?.scrollIntoView({ behavior: 'smooth' })
      } else {
        navigate('/')
        setTimeout(() => {
          document.getElementById('pricing')?.scrollIntoView({ behavior: 'smooth' })
        }, 100)
      }
    },
    [navigate, location.pathname],
  )

  const handleLogout = useCallback(async () => {
    await logout()
    setOpen(false)
    setMenuOpen(false)
    window.location.href = '/'
  }, [])

  const handleCopyToken = useCallbac
useParsedGeometry function · typescript · L13-L24 (12 LOC)
packages/frontend/src/components/MeshViewer.tsx
function useParsedGeometry(vertices: Float32Array, faces: Uint32Array) {
  const geo = useMemo(() => {
    const g = new THREE.BufferGeometry()
    g.setAttribute('position', new THREE.Float32BufferAttribute(vertices, 3))
    g.setIndex(new THREE.Uint32BufferAttribute(faces, 1))
    g.computeVertexNormals()
    return g
  }, [vertices, faces])

  useEffect(() => () => geo.dispose(), [geo])
  return geo
}
Methodology: Repobility · https://repobility.com/research/state-of-ai-code-2026/
ModelMesh function · typescript · L26-L33 (8 LOC)
packages/frontend/src/components/MeshViewer.tsx
function ModelMesh({ vertices, faces }: { vertices: Float32Array; faces: Uint32Array }) {
  const geo = useParsedGeometry(vertices, faces)
  return (
    <mesh geometry={geo} renderOrder={1}>
      <meshStandardMaterial color='#a6accd' transparent opacity={0.15} depthWrite={false} side={THREE.DoubleSide} />
    </mesh>
  )
}
SupportMesh function · typescript · L35-L43 (9 LOC)
packages/frontend/src/components/MeshViewer.tsx
function SupportMesh({ vertices, faces }: { vertices: Float32Array; faces: Uint32Array }) {
  const geo = useParsedGeometry(vertices, faces)
  return (
    <mesh geometry={geo} renderOrder={0}>
      <meshStandardMaterial color='#5de4c7' transparent opacity={0.85} roughness={1} metalness={0.1} />
      <Edges threshold={15} color='white' />
    </mesh>
  )
}
SetZUp function · typescript · L45-L52 (8 LOC)
packages/frontend/src/components/MeshViewer.tsx
function SetZUp() {
  const { camera } = useThree()
  useEffect(() => {
    camera.up.set(0, 0, 1)
    camera.updateProjectionMatrix()
  }, [camera])
  return null
}
MeshViewer function · typescript · L54-L72 (19 LOC)
packages/frontend/src/components/MeshViewer.tsx
export default function MeshViewer({ modelVertices, modelFaces, supportVertices, supportFaces }: MeshViewerProps) {
  return (
    <div className='w-full min-h-[400px] lg:h-full lg:aspect-auto aspect-[16/10] rounded-xl overflow-hidden border border-border'>
      <Canvas camera={{ fov: 45, near: 0.1, far: 100000, up: [0, 0, 1] }} style={{ background: 'transparent' }}>
        <ambientLight intensity={0.6} />
        <directionalLight position={[5, 5, 10]} intensity={1} />
        <directionalLight position={[-5, -5, -5]} intensity={0.3} />
        <Bounds fit clip observe margin={1.2}>
          <group>
            <SupportMesh vertices={supportVertices} faces={supportFaces} />
            <ModelMesh vertices={modelVertices} faces={modelFaces} />
          </group>
        </Bounds>
        <SetZUp />
        <OrbitControls makeDefault enableDamping dampingFactor={0.1} />
      </Canvas>
    </div>
  )
}
ProgressSteps function · typescript · L11-L39 (29 LOC)
packages/frontend/src/components/ProgressSteps.tsx
export default function ProgressSteps({ steps }: Props) {
  return (
    <div className="mb-6">
      {steps.map((step, i) => (
        <div key={i} className={`flex items-center gap-3 py-2.5 ${
          step.status === 'done' ? 'text-accent' : step.status === 'active' ? 'text-primary' : 'text-muted'
        }`}>
          <div className="w-6 h-6 flex items-center justify-center shrink-0">
            {step.status === 'done' && (
              <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3">
                <polyline points="20 6 9 17 4 12" />
              </svg>
            )}
            {step.status === 'active' && (
              <div className="w-4 h-4 border-2 border-border border-t-accent rounded-full animate-spin" />
            )}
            {step.status === 'pending' && (
              <div className="w-1.5 h-1.5 rounded-full bg-border" />
            )}
          </div>
          <div className="flex gap-3 items-baseline">
AuthProvider function · typescript · L20-L43 (24 LOC)
packages/frontend/src/lib/AuthContext.tsx
export function AuthProvider({ children }: { children: ReactNode }) {
  const [user, setUser] = useState<User | null>(null);
  const [license, setLicense] = useState<License | null>(null);
  const [freeRemaining, setFreeRemaining] = useState(0);
  const [loading, setLoading] = useState(true);

  const refresh = useCallback(async () => {
    const state = await fetchMe();
    setUser(state.user);
    setLicense(state.license);
    setFreeRemaining(state.freeRemaining);
    setLoading(false);
  }, []);

  useEffect(() => {
    refresh();
  }, [refresh]);

  return (
    <AuthContext.Provider value={{ user, license, freeRemaining, loading, refresh }}>
      {children}
    </AuthContext.Provider>
  );
}
useAuth function · typescript · L45-L47 (3 LOC)
packages/frontend/src/lib/AuthContext.tsx
export function useAuth() {
  return useContext(AuthContext);
}
fetchMe function · typescript · L19-L35 (17 LOC)
packages/frontend/src/lib/auth.ts
export async function fetchMe(): Promise<AuthState> {
  try {
    const controller = new AbortController();
    const timeout = setTimeout(() => controller.abort(), 3000);
    const resp = await fetch("/api/auth/me", { credentials: "include", signal: controller.signal });
    clearTimeout(timeout);
    if (!resp.ok) return { user: null, license: null, freeRemaining: 0 };
    const data = await resp.json();
    return {
      user: data.user || null,
      license: data.license || null,
      freeRemaining: data.freeRemaining ?? 0,
    };
  } catch {
    return { user: null, license: null, freeRemaining: 0 };
  }
}
Same scanner, your repo: https://repobility.com — Repobility
loginUrl function · typescript · L37-L39 (3 LOC)
packages/frontend/src/lib/auth.ts
export function loginUrl(): string {
  return "/api/auth/github";
}
logout function · typescript · L41-L43 (3 LOC)
packages/frontend/src/lib/auth.ts
export async function logout(): Promise<void> {
  await fetch("/api/auth/logout", { method: "POST", credentials: "include" });
}
getStoredToken function · typescript · L4-L10 (7 LOC)
packages/frontend/src/lib/license.ts
export function getStoredToken(): string | null {
  try {
    return localStorage.getItem(TOKEN_KEY);
  } catch {
    return null;
  }
}
storeToken function · typescript · L12-L19 (8 LOC)
packages/frontend/src/lib/license.ts
export function storeToken(token: string): void {
  try {
    localStorage.setItem(TOKEN_KEY, token);
    localStorage.setItem(VALID_KEY, '1');
  } catch {
    // ignore
  }
}
clearToken function · typescript · L21-L28 (8 LOC)
packages/frontend/src/lib/license.ts
export function clearToken(): void {
  try {
    localStorage.removeItem(TOKEN_KEY);
    localStorage.removeItem(VALID_KEY);
  } catch {
    // ignore
  }
}
isTokenFormat function · typescript · L30-L32 (3 LOC)
packages/frontend/src/lib/license.ts
export function isTokenFormat(token: string): boolean {
  return /^ns_live_[a-f0-9]{32}$/.test(token);
}
validateToken function · typescript · L35-L60 (26 LOC)
packages/frontend/src/lib/license.ts
export async function validateToken(token: string): Promise<boolean> {
  if (!isTokenFormat(token)) return false;

  try {
    const resp = await fetch('/api/validate', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ token }),
    });
    const data = await resp.json();
    if (data.valid) {
      storeToken(token);
      return true;
    } else {
      clearToken();
      return false;
    }
  } catch {
    // Offline — trust cached validation
    try {
      return localStorage.getItem(VALID_KEY) === '1';
    } catch {
      return false;
    }
  }
}
occtimportjs function · typescript · L17-L19 (3 LOC)
packages/frontend/src/lib/occt-import-js.d.ts
  export default function occtimportjs(options?: OcctInitOptions): Promise<{
    ReadStepFile(buffer: Uint8Array, params: null): OcctResult;
  }>;
Provenance: Repobility (https://repobility.com) — every score reproducible from /scan/
getOcct function · typescript · L18-L27 (10 LOC)
packages/frontend/src/lib/step.ts
async function getOcct() {
  if (occtInstance) return occtInstance
  occtInstance = await occtInit({
    locateFile: (path: string) => {
      if (path.endsWith('.wasm')) return occtWasmUrl
      return path
    },
  })
  return occtInstance
}
parseSTEP function · typescript · L30-L40 (11 LOC)
packages/frontend/src/lib/step.ts
export async function parseSTEP(buffer: ArrayBuffer, params?: any): Promise<STEPParseResult> {
  const occt = await getOcct()
  const fileContent = new Uint8Array(buffer)
  const result = occt.ReadStepFile(fileContent, params ?? null)

  if (!result.success || !result.meshes || result.meshes.length === 0) {
    throw new Error('Failed to parse STEP file — no geometry found.')
  }

  return processOcctResult(result.meshes)
}
Docs function · typescript · L1-L259 (259 LOC)
packages/frontend/src/pages/Docs.tsx
export default function Docs() {
  return (
    <div className="py-16">
      <div className="max-w-[1200px] mx-auto px-6">
        <p className="label-xs mb-4 tracking-[0.14em]">Reference</p>
        <h1 className="text-2xl font-semibold mb-12 tracking-[-0.01em]">Documentation</h1>

        {/* Install */}
        <section className="mb-14">
          <div className="flex items-center gap-3 mb-5 pt-5 border-t border-border">
            <h2 className="text-lg font-medium">1. Install</h2>
          </div>
          <div className="rounded-xl p-5 glass mb-4">
            <p className="label-xs mb-3">npm</p>
            <div className="bg-base/60 border border-border rounded-md px-3 py-2.5 mb-3 overflow-x-auto">
              <code className="font-mono text-xs text-code whitespace-pre">npm install -g negative-support</code>
            </div>
            <p className="text-dim text-sm mb-3 leading-relaxed">
              Or run directly with npx (no install needed):
            </p>
    
Recover function · typescript · L3-L90 (88 LOC)
packages/frontend/src/pages/Recover.tsx
export default function Recover() {
  const [email, setEmail] = useState("");
  const [loading, setLoading] = useState(false);
  const [sent, setSent] = useState(false);
  const [error, setError] = useState("");

  const handleSubmit = useCallback(async (e: React.FormEvent) => {
    e.preventDefault();
    const trimmed = email.trim();
    if (!trimmed || !trimmed.includes("@")) {
      setError("Please enter a valid email address.");
      return;
    }

    setLoading(true);
    setError("");

    try {
      const resp = await fetch("/api/recover", {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ email: trimmed }),
      });
      const data = await resp.json();
      if (data.ok) {
        setSent(true);
      } else {
        setError(data.error || "Something went wrong.");
      }
    } catch {
      setError("Failed to connect. Please try again.");
    } finally {
      setLoading(false);
    }
  }, [email]);

  re
Success function · typescript · L6-L104 (99 LOC)
packages/frontend/src/pages/Success.tsx
export default function Success() {
  const [searchParams] = useSearchParams();
  const sessionId = searchParams.get("session_id");
  const auth = useAuth();

  const [token, setToken] = useState<string | null>(null);
  const [error, setError] = useState<string | null>(null);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    if (!sessionId) {
      setError("No session ID found.");
      setLoading(false);
      return;
    }

    const fetchToken = async () => {
      try {
        const resp = await fetch(`/api/token?session_id=${sessionId}`, { credentials: "include" });
        const data = await resp.json();
        if (data.token) {
          setToken(data.token);
          // Refresh auth context so the header updates
          auth.refresh();
        } else {
          setError(data.error || "Token not found.");
        }
      } catch {
        setError("Failed to fetch token. Please try refreshing.");
      } finally {
        setLoading(false);
      }
progress function · typescript · L63-L65 (3 LOC)
packages/frontend/src/workers/supports.worker.ts
function progress(step: string, detail?: string) {
  self.postMessage({ type: 'progress', step, detail } satisfies ProgressMessage);
}
json function · typescript · L35-L46 (12 LOC)
packages/server/src/api.ts
function json(data: unknown, status = 200): Response {
  return new Response(JSON.stringify(data), {
    status,
    headers: {
      "Content-Type": "application/json",
      "Access-Control-Allow-Origin": "https://negative.support",
      "Access-Control-Allow-Methods": "GET, POST, OPTIONS",
      "Access-Control-Allow-Headers": "Content-Type",
      "Access-Control-Allow-Credentials": "true",
    },
  });
}
isValidMachineId function · typescript · L48-L50 (3 LOC)
packages/server/src/api.ts
function isValidMachineId(id: unknown): id is string {
  return typeof id === "string" && /^[a-f0-9]{64}$/.test(id);
}
If a scraper extracted this row, it came from Repobility (https://repobility.com)
isValidToken function · typescript · L52-L54 (3 LOC)
packages/server/src/api.ts
function isValidToken(token: unknown): token is string {
  return typeof token === "string" && /^ns_live_[a-f0-9]{32}$/.test(token);
}
generateToken function · typescript · L56-L61 (6 LOC)
packages/server/src/api.ts
function generateToken(): string {
  const bytes = new Uint8Array(16);
  crypto.getRandomValues(bytes);
  const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
  return `ns_live_${hex}`;
}
now function · typescript · L63-L65 (3 LOC)
packages/server/src/api.ts
function now(): string {
  return new Date().toISOString();
}
readJson function · typescript · L67-L73 (7 LOC)
packages/server/src/api.ts
async function readJson(request: Request): Promise<Record<string, unknown>> {
  try {
    return (await request.json()) as Record<string, unknown>;
  } catch {
    return {};
  }
}
verifyStripeSignature function · typescript · L77-L113 (37 LOC)
packages/server/src/api.ts
async function verifyStripeSignature(
  payload: string,
  sigHeader: string,
  secret: string
): Promise<boolean> {
  const parts = sigHeader.split(",");
  const timestamp = parts.find((p) => p.startsWith("t="))?.slice(2);
  const signatures = parts
    .filter((p) => p.startsWith("v1="))
    .map((p) => p.slice(3));

  if (!timestamp || signatures.length === 0) return false;

  // Reject events older than 5 minutes
  const age = Math.floor(Date.now() / 1000) - parseInt(timestamp, 10);
  if (Math.abs(age) > 300) return false;

  const signedPayload = `${timestamp}.${payload}`;
  const key = await crypto.subtle.importKey(
    "raw",
    new TextEncoder().encode(secret),
    { name: "HMAC", hash: "SHA-256" },
    false,
    ["sign"]
  );
  const sig = await crypto.subtle.sign(
    "HMAC",
    key,
    new TextEncoder().encode(signedPayload)
  );
  const expected = Array.from(new Uint8Array(sig), (b) =>
    b.toString(16).padStart(2, "0")
  ).join("");

  // Constant-time comparison
  re
timingSafeEqual function · typescript · L115-L122 (8 LOC)
packages/server/src/api.ts
function timingSafeEqual(a: string, b: string): boolean {
  if (a.length !== b.length) return false;
  let result = 0;
  for (let i = 0; i < a.length; i++) {
    result |= a.charCodeAt(i) ^ b.charCodeAt(i);
  }
  return result === 0;
}
handleFreeTier function · typescript · L126-L178 (53 LOC)
packages/server/src/api.ts
export async function handleFreeTier(request: Request, env: Env): Promise<Response> {
  const body = await readJson(request);

  // Token-based tracking (web + CLI)
  if (isValidToken(body.token)) {
    const row = await env.DB.prepare(
      `SELECT plan, runs_used FROM licenses WHERE token = ?`
    )
      .bind(body.token)
      .first<{ plan: string; runs_used: number }>();

    if (!row) {
      return json({ error: "Token not found" }, 404);
    }

    // Lifetime licenses have unlimited runs
    if (row.plan === "lifetime") {
      return json({ free_remaining: -1 });
    }

    // Increment and return remaining
    if (row.runs_used < FREE_RUNS) {
      await env.DB.prepare(
        `UPDATE licenses SET runs_used = runs_used + 1 WHERE token = ? AND runs_used < ?`
      )
        .bind(body.token, FREE_RUNS)
        .run();
      return json({ free_remaining: Math.max(0, FREE_RUNS - row.runs_used - 1) });
    }

    return json({ free_remaining: 0 });
  }

  // Legacy machine-ba
handleValidate function · typescript · L180-L198 (19 LOC)
packages/server/src/api.ts
export async function handleValidate(request: Request, env: Env): Promise<Response> {
  const body = await readJson(request);
  if (!isValidToken(body.token)) {
    return json({ valid: false, error: "Invalid token format" }, 400);
  }

  const row = await env.DB.prepare(
    `SELECT plan, runs_used FROM licenses WHERE token = ?`
  )
    .bind(body.token)
    .first<{ plan: string; runs_used: number }>();

  if (!row) {
    return json({ valid: false, error: "Token not found" });
  }

  const freeRemaining = row.plan === "lifetime" ? -1 : Math.max(0, FREE_RUNS - row.runs_used);
  return json({ valid: true, plan: row.plan, free_remaining: freeRemaining });
}
Methodology: Repobility · https://repobility.com/research/state-of-ai-code-2026/
handleActivate function · typescript · L200-L252 (53 LOC)
packages/server/src/api.ts
export async function handleActivate(request: Request, env: Env): Promise<Response> {
  const body = await readJson(request);
  if (!isValidToken(body.token)) {
    return json({ ok: false, error: "Invalid token format" }, 400);
  }
  if (!isValidMachineId(body.machine_id)) {
    return json({ ok: false, error: "Invalid machine_id" }, 400);
  }

  // Check token exists
  const license = await env.DB.prepare(
    `SELECT plan FROM licenses WHERE token = ?`
  )
    .bind(body.token)
    .first<{ plan: string }>();

  if (!license) {
    return json({ ok: false, error: "Token not found" });
  }

  // Check machine count
  const count = await env.DB.prepare(
    `SELECT COUNT(*) as cnt FROM machine_licenses WHERE token = ?`
  )
    .bind(body.token)
    .first<{ cnt: number }>();

  if ((count?.cnt ?? 0) >= MAX_MACHINES_PER_TOKEN) {
    // Check if this machine is already activated (re-activation is OK)
    const existing = await env.DB.prepare(
      `SELECT 1 FROM machine_licenses WHERE 
handleStripeWebhook function · typescript · L254-L316 (63 LOC)
packages/server/src/api.ts
export async function handleStripeWebhook(request: Request, env: Env): Promise<Response> {
  const rawBody = await request.text();
  const sigHeader = request.headers.get("Stripe-Signature");

  if (!sigHeader) {
    return json({ error: "Missing signature" }, 400);
  }

  const valid = await verifyStripeSignature(rawBody, sigHeader, env.STRIPE_WEBHOOK_SECRET);
  if (!valid) {
    return json({ error: "Invalid signature" }, 400);
  }

  const event = JSON.parse(rawBody);
  if (event.type !== "checkout.session.completed") {
    return json({ received: true });
  }

  const session = event.data.object;
  const email = session.customer_details?.email ?? session.customer_email ?? "unknown";
  const sessionId = session.id;
  const userId = session.metadata?.user_id ? parseInt(session.metadata.user_id, 10) : null;

  // Idempotent: skip if we already processed this session
  const existing = await env.DB.prepare(
    `SELECT token FROM licenses WHERE stripe_session_id = ?`
  )
    .bind(sess
handleGetToken function · typescript · L318-L335 (18 LOC)
packages/server/src/api.ts
export async function handleGetToken(url: URL, env: Env): Promise<Response> {
  const sessionId = url.searchParams.get("session_id");
  if (!sessionId) {
    return json({ error: "Missing session_id" }, 400);
  }

  const row = await env.DB.prepare(
    `SELECT token, plan FROM licenses WHERE stripe_session_id = ?`
  )
    .bind(sessionId)
    .first<{ token: string; plan: string }>();

  if (!row) {
    return json({ error: "Session not found" }, 404);
  }

  return json({ token: row.token, plan: row.plan });
}
‹ prevpage 3 / 4next ›