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

27 lines
1.5 KiB
Plaintext

import { Observable } from '../Observable';
import { BehaviorSubject } from '../BehaviorSubject';
import { ConnectableObservable } from '../observable/ConnectableObservable';
import { UnaryFunction } from '../types';
/**
* Creates a {@link ConnectableObservable} that utilizes a {@link BehaviorSubject}.
*
* @param initialValue The initial value passed to the {@link BehaviorSubject}.
* @return A function that returns a {@link ConnectableObservable}
* @deprecated Will be removed in v8. To create a connectable observable that uses a
* {@link BehaviorSubject} under the hood, use {@link connectable}.
* `source.pipe(publishBehavior(initValue))` is equivalent to
* `connectable(source, { connector: () => new BehaviorSubject(initValue), resetOnDisconnect: false })`.
* If you're using {@link refCount} after `publishBehavior`, use the {@link share} operator instead.
* `source.pipe(publishBehavior(initValue), refCount())` is equivalent to
* `source.pipe(share({ connector: () => new BehaviorSubject(initValue), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }))`.
* Details: https://rxjs.dev/deprecations/multicasting
*/
export function publishBehavior<T>(initialValue: T): UnaryFunction<Observable<T>, ConnectableObservable<T>> {
// Note that this has *never* supported the selector function.
return (source) => {
const subject = new BehaviorSubject<T>(initialValue);
return new ConnectableObservable(source, () => subject);
};
}