TenantAtlas/apps/platform/.pnpm-store/v10/files/8d/3ad940abdc78d58d07fdba1b247faa765fca07a3befb7efc57f7c433652090815f4554e823fdb85495d9cc33385aabba91b88e79babd7d915eea066fb12fbf
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

72 lines
3.1 KiB
Plaintext

import { MonoTypeOperatorFunction, Observer } from '../types';
/**
* An extension to the {@link Observer} interface used only by the {@link tap} operator.
*
* It provides a useful set of callbacks a user can register to do side-effects in
* cases other than what the usual {@link Observer} callbacks are
* ({@link guide/glossary-and-semantics#next next},
* {@link guide/glossary-and-semantics#error error} and/or
* {@link guide/glossary-and-semantics#complete complete}).
*
* ## Example
*
* ```ts
* import { fromEvent, switchMap, tap, interval, take } from 'rxjs';
*
* const source$ = fromEvent(document, 'click');
* const result$ = source$.pipe(
* switchMap((_, i) => i % 2 === 0
* ? fromEvent(document, 'mousemove').pipe(
* tap({
* subscribe: () => console.log('Subscribed to the mouse move events after click #' + i),
* unsubscribe: () => console.log('Mouse move events #' + i + ' unsubscribed'),
* finalize: () => console.log('Mouse move events #' + i + ' finalized')
* })
* )
* : interval(1_000).pipe(
* take(5),
* tap({
* subscribe: () => console.log('Subscribed to the 1-second interval events after click #' + i),
* unsubscribe: () => console.log('1-second interval events #' + i + ' unsubscribed'),
* finalize: () => console.log('1-second interval events #' + i + ' finalized')
* })
* )
* )
* );
*
* const subscription = result$.subscribe({
* next: console.log
* });
*
* setTimeout(() => {
* console.log('Unsubscribe after 60 seconds');
* subscription.unsubscribe();
* }, 60_000);
* ```
*/
export interface TapObserver<T> extends Observer<T> {
/**
* The callback that `tap` operator invokes at the moment when the source Observable
* gets subscribed to.
*/
subscribe: () => void;
/**
* The callback that `tap` operator invokes when an explicit
* {@link guide/glossary-and-semantics#unsubscription unsubscribe} happens. It won't get invoked on
* `error` or `complete` events.
*/
unsubscribe: () => void;
/**
* The callback that `tap` operator invokes when any kind of
* {@link guide/glossary-and-semantics#finalization finalization} happens - either when
* the source Observable `error`s or `complete`s or when it gets explicitly unsubscribed
* by the user. There is no difference in using this callback or the {@link finalize}
* operator, but if you're already using `tap` operator, you can use this callback
* instead. You'd get the same result in either case.
*/
finalize: () => void;
}
export declare function tap<T>(observerOrNext?: Partial<TapObserver<T>> | ((value: T) => void)): MonoTypeOperatorFunction<T>;
/** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */
export declare function tap<T>(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): MonoTypeOperatorFunction<T>;
//# sourceMappingURL=tap.d.ts.map