/* Builds a payload with the REAL writer from src/pkjs/index.js and prints it as hex. */ const path = require("path"); global.Pebble = { addEventListener() {} }; global.localStorage = { getItem: () => null, setItem() {} }; global.XMLHttpRequest = function () {}; const writer = require(path.join(__dirname, "..", "src", "pkjs", "index.js")); const plan = { positions_available: true, unplaced: [{ name: "Bibi", initial: "B", color: "#AA00FF" }], }; const level = { name: "Ground", rooms: [ { name: "Kitchen", ha_area_id: "kitchen", points: [[0, 0], [0.5, 0], [0.5, 0.5], [0, 0.5]], targets: [], occupants: [ { id: 1, name: "Amir", initial: "A", color: "#FF0000", position: { x: 0.25, y: 0.25 } }, ], }, { // A radar target and nobody named. This must read as OCCUPIED even though HA // never reports the area: somebody is in there, and a positive detection // outranks "no area data". name: "Loggia", ha_area_id: null, points: [[0.6, 0], [1, 0], [1, 0.4], [0.6, 0.4]], targets: [{ x: 0.8, y: 0.2 }], occupants: [], }, { // Genuinely unknown: drawn, no area, nothing detected. The third state. name: "Store", ha_area_id: null, points: [[0.6, 0.6], [1, 0.6], [1, 1], [0.6, 1]], targets: [], occupants: [], }, ], }; const bytes = writer.build(plan, level, false, 16); process.stdout.write(bytes.map((b) => b.toString(16).padStart(2, "0")).join(" "));