import { mkdir, readFile, writeFile } from "node:fs/promises"; import { createHash } from "node:crypto"; import { pathToFileURL } from "node:url"; import path from "node:path"; import { root, output, run, troveBin } from "./suite.mjs"; run(process.execPath, ["curios/harmony-connector/build.mjs"]); const directory = path.join(root, "curios/harmony-connector"); const manifest = JSON.parse( await readFile(path.join(directory, "curio.json"), "utf8"), ); const file = path.join( output, "packages", `${manifest.id}-${manifest.version}-${process.arch}.curio`, ); await mkdir(path.dirname(file), { recursive: true }); run(troveBin, ["curio", "check", directory, "--json"]); run(troveBin, [ "curio", "pack", directory, "--out", file, "--overwrite", "--no-input", "--json", ]); const data = await readFile(file); const entries = [ { directory: "harmony-connector", manifest, file, artifact: { target: `${process.arch === "arm64" ? "aarch64" : "x86_64"}-apple-darwin`, url: pathToFileURL(file).href, sha256: createHash("sha256").update(data).digest("hex"), size: data.length, }, }, ]; await writeFile( path.join(output, "harmony-release.json"), JSON.stringify(entries, null, 2) + "\n", ); console.log("Release input: dist/harmony-release.json");