TenantAtlas/apps/platform/.pnpm-store/v10/files/8b/f202634ff624d0e73f95b839f8f6042b7d1a5625a73721b830194235da3421bbcbca0770259be3520ac486ea32dbc8a57fb0402eb215e729f2d53618919700
ahmido 1fec9c6f9d
Some checks failed
Main Confidence / confidence (push) Failing after 45s
feat: compress governance operator outcomes (#253)
## Summary
- introduce surface-aware compressed governance outcomes and reuse the shared truth/explanation seams for operator-first summaries
- apply the compressed outcome hierarchy across baseline, evidence, review, review-pack, canonical review/evidence, and artifact-oriented operation-run surfaces
- expand spec 214 fixtures and Pest coverage, and fix tenant-panel route assertions by generating explicit tenant-panel URLs in the affected Filament tests

## Validation
- `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent`
- focused governance compression suite from `specs/214-governance-outcome-compression/quickstart.md` passed (`68` tests, `445` assertions)
- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/InventoryItemResourceTest.php tests/Feature/Filament/BackupSetUiEnforcementTest.php tests/Feature/Filament/RestoreRunUiEnforcementTest.php` passed (`18` tests, `81` assertions)

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #253
2026-04-19 12:30:36 +00:00

133 lines
4.1 KiB
Plaintext

"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var language_exports = {};
__export(language_exports, {
fromKeyboardModifiers: () => fromKeyboardModifiers,
generateCode: () => generateCode,
sanitizeDeviceOptions: () => sanitizeDeviceOptions,
toClickOptionsForSourceCode: () => toClickOptionsForSourceCode,
toKeyboardModifiers: () => toKeyboardModifiers,
toSignalMap: () => toSignalMap
});
module.exports = __toCommonJS(language_exports);
function generateCode(actions, languageGenerator, options) {
const header = languageGenerator.generateHeader(options);
const footer = languageGenerator.generateFooter(options.saveStorage);
const actionTexts = actions.map((a) => generateActionText(languageGenerator, a, !!options.generateAutoExpect)).filter(Boolean);
const text = [header, ...actionTexts, footer].join("\n");
return { header, footer, actionTexts, text };
}
function generateActionText(generator, action, generateAutoExpect) {
let text = generator.generateAction(action);
if (!text)
return;
if (generateAutoExpect && action.action.preconditionSelector) {
const expectAction = {
frame: action.frame,
startTime: action.startTime,
endTime: action.startTime,
action: {
name: "assertVisible",
selector: action.action.preconditionSelector,
signals: []
}
};
const expectText = generator.generateAction(expectAction);
if (expectText)
text = expectText + "\n\n" + text;
}
return text;
}
function sanitizeDeviceOptions(device, options) {
const cleanedOptions = {};
for (const property in options) {
if (JSON.stringify(device[property]) !== JSON.stringify(options[property]))
cleanedOptions[property] = options[property];
}
return cleanedOptions;
}
function toSignalMap(action) {
let popup;
let download;
let dialog;
for (const signal of action.signals) {
if (signal.name === "popup")
popup = signal;
else if (signal.name === "download")
download = signal;
else if (signal.name === "dialog")
dialog = signal;
}
return {
popup,
download,
dialog
};
}
function toKeyboardModifiers(modifiers) {
const result = [];
if (modifiers & 1)
result.push("Alt");
if (modifiers & 2)
result.push("ControlOrMeta");
if (modifiers & 4)
result.push("ControlOrMeta");
if (modifiers & 8)
result.push("Shift");
return result;
}
function fromKeyboardModifiers(modifiers) {
let result = 0;
if (!modifiers)
return result;
if (modifiers.includes("Alt"))
result |= 1;
if (modifiers.includes("Control"))
result |= 2;
if (modifiers.includes("ControlOrMeta"))
result |= 2;
if (modifiers.includes("Meta"))
result |= 4;
if (modifiers.includes("Shift"))
result |= 8;
return result;
}
function toClickOptionsForSourceCode(action) {
const modifiers = toKeyboardModifiers(action.modifiers);
const options = {};
if (action.button !== "left")
options.button = action.button;
if (modifiers.length)
options.modifiers = modifiers;
if (action.clickCount > 2)
options.clickCount = action.clickCount;
if (action.position)
options.position = action.position;
return options;
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
fromKeyboardModifiers,
generateCode,
sanitizeDeviceOptions,
toClickOptionsForSourceCode,
toKeyboardModifiers,
toSignalMap
});