import { readFileSync } from "node:fs"; const manifest = JSON.parse(readFileSync(new URL("../manifest.json", import.meta.url), "utf8")); const expected = readFileSync(new URL("../docs/extension-surface-inventory.txt", import.meta.url), "utf8"); const actual = [ ...[...(manifest.permissions ?? [])].sort().map((permission) => `permission|${permission}`), ...[...(manifest.host_permissions ?? [])].sort().map((permission) => `host-permission|${permission}`), ].sort().join("\n") + "\n"; if (actual !== expected) { throw new Error(`extension surface differs from inventory:\nexpected ${expected}actual ${actual}`); } console.log("Browser extension permission inventory matches manifest.json");