/** Qualification artifact emitted after tests, never a production fixture dependency. */ import { mkdir, writeFile } from "node:fs/promises"; import { loadReaderWorkspace } from "./reader-fixture.js"; import { compileExecutionPlan } from "../src/execution-world/plan.js"; import { generatePortableTypeScriptBindings } from "../src/bindings/portable.js"; const plan = compileExecutionPlan(await loadReaderWorkspace()); await mkdir("dist/portable-reader", { recursive: true }); for (const target of ["browser", "server"]) await writeFile( `dist/portable-reader/${target}.ts`, generatePortableTypeScriptBindings(plan.definition.bindingSchema, "package:reader-runtime@1", { target }), ); await writeFile("dist/portable-reader/plan.json", JSON.stringify(plan)); const serviceWorkspace = structuredClone(plan.definition.workspace); serviceWorkspace.atoms = []; serviceWorkspace.conformances = []; serviceWorkspace.constructors = []; serviceWorkspace.interfaceImports = []; serviceWorkspace.sharedAttachments = []; serviceWorkspace.packageImports[0]!.queries = []; serviceWorkspace.packageImports[0]!.checkedQueries = []; const original = serviceWorkspace.packageImports[0]!.exports.find((e) => e.kind === "function")!; serviceWorkspace.packageImports[0]!.exports = [ { ...original, kind: "function", execution: { kind: "remote" }, inputType: { kind: "scalar", name: "string" }, outputType: { kind: "scalar", name: "string" }, dependencyPorts: [], }, ]; await writeFile("dist/portable-reader/service-plan.json", JSON.stringify(compileExecutionPlan(serviceWorkspace)));