feat(core-consent): add PayloadConsent, RecordingConsent and DI binders

Implements the Payload-backed IConsent that reads/writes users.consentState
and emits CONSENT_GRANT/CONSENT_WITHDRAW audit entries via injected auditLog.
Adds RecordingConsent test double in core-testing for unit-test injection.
Adds bindProductionConsent/bindDevSeedConsent DI binders and InMemoryConsent
for dev/seed contexts. Contract tests cover grant/withdraw/isGranted round-trip,
audit entry shape, metadata persistence (bannerVersion/policyVersion/method),
and getCategories reflection of state.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-19 12:39:31 +00:00
parent 5792b7412a
commit 7dd46b68b2
20 changed files with 936 additions and 27 deletions

View File

@@ -2,7 +2,17 @@ export type {
ConsentCategory,
ConsentState,
UserConsentState,
ConsentGrantMeta,
} from "./consent-types";
export type { IConsent } from "./consent.interface";
export type { ConsentChecked } from "./with-consent";
export { withConsent } from "./with-consent";
export { InMemoryConsent } from "./in-memory-consent";
export { PayloadConsent } from "./payload-consent";
export { CONSENT_SYMBOLS } from "./di/symbols";
export {
bindProductionConsent,
type BindProductionConsentOpts,
type ConsentFactory,
} from "./di/bind-production";
export { bindDevSeedConsent } from "./di/bind-dev-seed";