TenantAtlas/apps/platform/.pnpm-store/v10/files/ac/a9d1d6c43bfda9ae9a9281f841e9582d657426225f653f4c44d37256e8d01ceac9f27cc6ef54c9a8b05345760d640932f617a5029b7d84023935c2b93084b0
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

93 lines
2.8 KiB
Plaintext

import { TypeHint } from "@aws-sdk/client-rds-data";
function getValueFromDataApi(field) {
if (field.stringValue !== void 0) {
return field.stringValue;
} else if (field.booleanValue !== void 0) {
return field.booleanValue;
} else if (field.doubleValue !== void 0) {
return field.doubleValue;
} else if (field.isNull !== void 0) {
return null;
} else if (field.longValue !== void 0) {
return field.longValue;
} else if (field.blobValue !== void 0) {
return field.blobValue;
} else if (field.arrayValue !== void 0) {
if (field.arrayValue.stringValues !== void 0) {
return field.arrayValue.stringValues;
}
if (field.arrayValue.longValues !== void 0) {
return field.arrayValue.longValues;
}
if (field.arrayValue.doubleValues !== void 0) {
return field.arrayValue.doubleValues;
}
if (field.arrayValue.booleanValues !== void 0) {
return field.arrayValue.booleanValues;
}
if (field.arrayValue.arrayValues !== void 0) {
return field.arrayValue.arrayValues;
}
throw new Error("Unknown array type");
} else {
throw new Error("Unknown type");
}
}
function typingsToAwsTypeHint(typings) {
if (typings === "date") {
return TypeHint.DATE;
} else if (typings === "decimal") {
return TypeHint.DECIMAL;
} else if (typings === "json") {
return TypeHint.JSON;
} else if (typings === "time") {
return TypeHint.TIME;
} else if (typings === "timestamp") {
return TypeHint.TIMESTAMP;
} else if (typings === "uuid") {
return TypeHint.UUID;
} else {
return void 0;
}
}
function toValueParam(value, typings) {
const response = {
value: {},
typeHint: typingsToAwsTypeHint(typings)
};
if (value === null) {
response.value = { isNull: true };
} else if (typeof value === "string") {
switch (response.typeHint) {
case TypeHint.DATE: {
response.value = { stringValue: value.split("T")[0] };
break;
}
case TypeHint.TIMESTAMP: {
response.value = { stringValue: value.replace("T", " ").replace("Z", "") };
break;
}
default: {
response.value = { stringValue: value };
break;
}
}
} else if (typeof value === "number" && Number.isInteger(value)) {
response.value = { longValue: value };
} else if (typeof value === "number" && !Number.isInteger(value)) {
response.value = { doubleValue: value };
} else if (typeof value === "boolean") {
response.value = { booleanValue: value };
} else if (value instanceof Date) {
response.value = { stringValue: value.toISOString().replace("T", " ").replace("Z", "") };
} else {
throw new Error(`Unknown type for ${value}`);
}
return response;
}
export {
getValueFromDataApi,
toValueParam,
typingsToAwsTypeHint
};
//# sourceMappingURL=index.js.map