Skip to content

NotificationAccountLifecycle — @gj-kit/nest-notifications

A public interface from @gj-kit/nest-notifications/core. The signature below is taken directly from the 0.1.1 release declaration.

import { NotificationAccountLifecycle } from '@gj-kit/nest-notifications/core';
/**
* Host bridge for account deletion. Call both methods inside the same host
* transaction as the deletion itself; the ordering obligations L1-L4 are the
* entire basis of G7 ("no delivery after a tombstone"), and nothing in this
* library can enforce them.
*
* - **L1** — `tombstone` and every delete run in one transaction with the
* account deletion. Commit the tombstone first and a relay running in between
* leaves a delivery behind; commit the purge first and a late stage creates a
* new outbox row.
* - **L2** — delete ingress rows *before* deliveries: the ingress `DELETE` blocks
* on the relay transaction's row lock (R7), so that relay serialises either
* side of this statement, and the delivery/message deletes that follow remove
* whatever it just committed. Delete deliveries first and a relay that
* committed in between survives the deletion and pushes.
* - **L3** — the tombstone row survives; everything else goes.
* - **L4** — `anonymizeActor` clears actor references left in *other* recipients'
* messages. A recipient purge does not do it for you.
*
* The full order is: tombstone -> ingress -> delivery -> message -> endpoint ->
* preference.
*/
interface NotificationAccountLifecycle<Transaction = unknown> {
purgeRecipient(transaction: Transaction, applicationKey: string, recipientRef: string): Promise<void>;
anonymizeActor(transaction: Transaction, applicationKey: string, actorRef: string): Promise<void>;
}

This declaration is the source of truth for parameters, optionality, generics, return values, and public union/type contracts. Check the package golden path and this subpath’s import conditions for required environment, permission, and error boundaries before calling it.

  • Package: @gj-kit/nest-notifications
  • Version: 0.1.1
  • Public entry: ./core
  • Source: GitHub