Import the public API through your package’s configured SDK build adapter:
Notifications can return promises; they do not delay other subscribers or asset
readiness. A guard returns true to allow or false to prevent your operation.
Exceptions, asynchronous guards and invalid decisions prevent it. Validators
must return synchronous booleans and should check all expected payload keys,
lengths and nested types. Payloads are shallow copied and frozen before validation;
the validator and subscribers receive the same snapshot. Event declarations and
payloads reject accessor properties, symbols and non-enumerable properties without
executing their getters. Use plain objects with enumerable data properties. Retain immutable
nested values. Subscribe with { signal: anotherOwner.signal } to cancel just
that registration. Every subscription also has its own idempotent unsubscribe
function. Repeated callbacks registered by different owners remain independent.
Callbacks added during delivery run on the next delivery. Recursive delivery of
the same event is rejected. Error reports contain the event name and a reason,
without submitted values or exceptions from your callback.
These browser callbacks do not invoke PHP automatically and do not authorize a
server write. Keep server validation and authorization on the application’s save
path. Your component decides when to call allow() and notify().
Use owned effects instead of retaining timers or observers after removal:
Each method returns a release function. Completed one-shot effects release their
bookkeeping. You can also pass { signal: parentSignal } to
createResourceScope(); aborting the parent disposes the scope. Use
effects.signal with cancellable asynchronous APIs and check effects.disposed
before publishing an async result. Disposal cannot interrupt code that is already
running. Shared workers or observers need a separate shared owner; tracking a
resource here ends that supplied resource when this component closes.
Continue reading
Extension guides · Definition and registration reference Last modified on October 17, 2026