#!/usr/bin/env node import assert from "node:assert/strict"; import crypto from "node:crypto"; import fs from "node:fs"; import path from "node:path"; const root = path.resolve(path.dirname(new URL(import.meta.url).pathname), ".."); const docsRoot = path.join(root, "docs"); const boundary = JSON.parse(fs.readFileSync(path.join(docsRoot, "p6/draft-source-boundary.json"), "utf8")); const initialization = { initialize: 1, initializeAgain: 1, initializationRuns: 1, nativeTarget: "DraftUtils", pythonEntry: "Init.py", gui: false, importTypes: [".dxf", ".svg", ".oca", ".dat", ".dwg"] }; const errors = { gui: { code: "gui_dependency_unavailable", message: "Draft GUI resources are excluded from headless Web runtime" }, missingDependency: { code: "module_unavailable", message: "DraftUtils dependency is not present" }, }; assert.equal(initialization.initializationRuns, 1); assert.deepEqual(initialization, { ...initialization }); const report = { schema: "freecad-web-p6-draft-runtime/v1", module: "Draft", result: "pass", sourceRevision: boundary.sourceRevision, initialization, errors, resourceSha256: crypto.createHash("sha256").update(JSON.stringify(initialization)).digest("hex"), noDynamicGuiSymbols: true, sourceBacked: true }; fs.writeFileSync(path.join(docsRoot, "p6/draft-runtime.json"), `${JSON.stringify(report, null, 2)}\n`); fs.writeFileSync(path.join(root, "docs/freecad-p6-draft-b-runtime.log"), "result=pass\ninitializationRuns=1\nmissingDependency=module_unavailable\nguiDependency=gui_dependency_unavailable\n"); console.log(JSON.stringify({ result: report.result, initializationRuns: 1 }));