Releases: Cratis/Chronicle.TypeScript
Releases · Cratis/Chronicle.TypeScript
Release list
Release v1.0.2
Added
@passivedecorator for model-bound projections, marking a read model that resolves on demand via immediate projection instead of materializing to a sink.
Changed
- Renamed
WellKnownSinks.NotSettoWellKnownSinks.None. - Passive projections and read models now register with the
Nonesink so the kernel resolves them through immediate projection by key rather than reading an empty sink and returning null.
🤖 Generated with Claude Code
Release v1.0.1
Added
defaultSinkTypeIdoption onChronicleOptionsto configure where projections, reducers and read models are persisted (defaults to MongoDB; set toWellKnownSinks.SQLfor SQL storage).- Documentation for sinks and configuring the default sink type.
Changed
WellKnownSinksnow exposes string sink type identifiers (InMemory,NotSet,MongoDB,SQL) instead of Guids, matching the Kernel's string-based sink type.
🤖 Generated with Claude Code
Release v1.0.0
Release v0.2.3
Fixed
- Calling the compliance `Release` gRPC service no longer crashes the entire client with `requestEncode is not a function`. The service definition was wired with empty placeholder objects instead of proper protobuf message functions; replaced with correct binary encode/decode implementations.
Release v0.2.2
Fixed
getSnapshotsByIdnow releases (decrypts) compliance-protected PII fields in read model snapshots when the read model is owned by a reducer, matching the behavior already applied togetInstanceByIdandgetInstances.
Release v0.2.1
Fixed
ComplianceMetadataTypenow uses a plainstringvalue instead ofGuid, matching the kernel concept that was changed to a string representation. ThePIIsentinel is updated from a UUID to'PII'.
Added
IMaterializedReadModelsandMaterializedReadModelsfor retrieving individual or multiple read model instances directly from the Chronicle sink.IReadModels.materializedexposes the new service to consumers.- Compliance-aware release for reducer-based read models: instances are automatically passed through the release pipeline when the schema declares compliance metadata on any property.
Changed
- Bumped
@cratis/chronicle.contractsto15.33.3.
Release v0.2.0
Added
- Top-level module re-exports from the package entrypoint to support module-style consumption.
- Explicit top-level subpath exports in
Source/package.jsonfor redistributable module access.
Changed
- Consolidated the feature work from the open PR branches into this integration PR.
- Renamed
Sourcemodule folders from PascalCase to camelCase across the package. - Updated internal imports/re-exports to match the new module folder naming.
- Updated JavaScript/TypeScript AI instructions to state the redistributable package convention: camelCase
Sourcemodules plus top-level package exports.
Fixed
- Resolved integration issues caused by mixed module naming and export paths after consolidation.
- Verified workspace compile succeeds after consolidation and module/export restructuring.
Release v0.1.0
Mirrors the .NET client's auditing/identity infrastructure for the TypeScript client. Each of the three concerns uses Node.js AsyncLocalStorage for per-async-context scoping, with module-level singletons and exported interfaces for consumer override.
New modules
Source/Identity/
Identity— value type withsubject,name,userName,onBehalfOf; statics:system,notSet,unknownIIdentityProvider/IdentityProvider—getCurrent(),setCurrentIdentity(),clearCurrentIdentity(); defaults toIdentity.system- Exports singleton
identityProvider
Source/Auditing/
CausationType— named type with staticsroot,unknown,appendEvent,appendManyEventsCausation—occurred,type,properties; factoryCausation.unknown()ICausationManager/CausationManager—getCurrentChain()returns the full per-context chain (seeded withroot);add()appends;defineRoot()sets the process-level root- Exports singleton
causationManager
Source/Correlation/
CorrelationId— value type;CorrelationId.create()generates a new GUID-backed idICorrelationIdAccessor(read) /ICorrelationIdSetter(write) — interface segregation matching .NET patternCorrelationIdManager— implements both;currentauto-generates if none set in context- Exports singleton
correlationIdManager
EventSequence wiring
append and appendMany now pull identity, causation chain, and correlation ID from the singletons instead of hard-coded [System] / empty values:
// Before (all hard-coded)
CausedBy: { Subject: '5d032c92-...', Name: '[System]', ... }
Causation: [{ Type: 'TypeScriptClient.Append', ... }]
// After (context-aware)
identityProvider.setCurrentIdentity(new Identity(sub, name, userName));
causationManager.add(CausationType.appendEvent, { eventType: id });
// EventSequence picks up whatever is in the current async context
const identity = identityProvider.getCurrent();
const causationChain = causationManager.getCurrentChain();
const correlationId = correlationIdManager.current;All three singletons plus their interfaces and value types are re-exported from the package root.