NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
A powerful and lightweight inversion of control container for JavaScript and Node.js apps powered by TypeScript.
Last release 2 months ago
23 Jul 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 56 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
145 releases · first in 2015
### Patch Changes - Updated dependencies - @inversifyjs/core@15.0.1 - @inversifyjs/container@3.1.3
### Patch Changes - Updated dependencies - @inversifyjs/core@15.0.0 - @inversifyjs/container@3.1.2
One column per quarter.
Fixed resolved value binding resolution to respect the jitless container option, avoiding Function constructor usage in CSP-restricted environments.
jitless container option, avoiding Function constructor usage in CSP-restricted environments.Updated ContainerOptions with optional jitless (default true).
ContainerOptions with optional jitless (default true).Improved instance transient scoped resolution performance forcing inlined v8 constructor calls.
transient scoped resolution performance forcing inlined v8 constructor calls.Deep redirection bindings are now properly refreshed in the plan cache when relevant bindings are added or removed
Resolution performance on transient scoped services has been improved by caching a resolver in the binding node and simplifying the core logic. Benchm
Export AbstractNewable type for use in abstract class bindings
AbstractNewable type for use in abstract class bindingsRenamed Container.unbind to unbindAsync
Container.unbind to unbindAsyncContainer.unbindSync to unbindContainer.rebind to rebindAsyncContainer.rebindSync to rebindContainerModuleLoadOptions.unbind to unbindAsyncContainerModuleLoadOptions.unbindSync to unbindContainerModuleLoadOptions.rebind to rebindAsyncContainerModuleLoadOptions.rebindSync to rebindContainer.load to loadAsyncContainer.loadSync to loadServiceIdentifier type. Now, a Function is a valid ServiceIdentifier<T> if and only if it satisfies AbstractNewable<T> | Newable<T>Container.unload to unloadAsyncContainer.unloadSync to unloadContainer.unbindAll to Container.unbindAllAsyncContainer.unbindAllSync to Container.unbindAllProviderProviderBindingRenamed Container.unbind to unbindAsync
Container.unbind to unbindAsyncContainer.unbindSync to unbindContainer.rebind to rebindAsyncContainer.rebindSync to rebindContainerModuleLoadOptions.unbind to unbindAsyncContainerModuleLoadOptions.unbindSync to unbindContainerModuleLoadOptions.rebind to rebindAsyncContainerModuleLoadOptions.rebindSync to rebindContainer.load to loadAsyncContainer.loadSync to loadServiceIdentifier type. Now, a Function is a valid ServiceIdentifier<T> if and only if it satisfies AbstractNewable<T> | Newable<T>Container.unload to unloadAsyncContainer.unloadSync to unloadContainer.unbindAll to Container.unbindAllAsyncContainer.unbindAllSync to Container.unbindAllProviderProviderBinding### Minor Changes - Added Container.unbindAllSync ### Patch Changes - Updated dependencies - @inversifyjs/core@9.2.0 - @inversifyjs/container@1.15.0
Container.unbindAllSyncUpdated BindToFluentSyntax.toResolvedValue to allow non multiple array ServiceIdentifier injectOptions
BindToFluentSyntax.toResolvedValue to allow non multiple array ServiceIdentifier injectOptionsUpdated circular dependency detection to handle V8 issues on nearly exhausted call stack scenarios
Updated metadata to reflect side effects
Updated entrypoint to import 'reflect-metadata/lite' instead of 'reflect-metadata'
### Patch Changes - Updated dependencies - @inversifyjs/core@9.1.1 - @inversifyjs/container@1.14.1
Updated BindToFluentSyntax.factory to allow async factory builders
Updated BindToFluentSyntax.factory to allow async factory builders
Updated Factory to allow async functions
Updated dependencies
### Patch Changes - Updated dependencies - @inversifyjs/container@1.13.2 - @inversifyjs/core@9.0.1
Added MapToResolvedValueInjectOptions type
Added MapToResolvedValueInjectOptions type
Updated dependencies
Added InjectFromBaseOptionsLifecycle.
InjectFromBaseOptionsLifecycle.InjectFromHierarchyOptionsLifecycle.injectFromBase with lifecycle property.injectFromHierarchy with lifecycle property.Updated Container to trigger autobind options on autobound parent container related binding requests.
Container to trigger autobind options on autobound parent container related binding requests.Updated decorate to allow method parameter decoration.
decorate to allow method parameter decoration.Fixed injectFromHierarchy avoiding crash when traversing Object metadata.
injectFromHierarchy avoiding crash when traversing Object metadata.### Added - Added injectFromHierarchy.
injectFromHierarchy.Fixed a bug involving circular dependencies when resolving services in some edge cases.
Fixed a bug causing Container.bind and Container.unbind to avoid throwing planning errors.
Container.bind and Container.unbind to avoid throwing planning errors.Updated BindOnFluentSyntaxImplementation.onDeactivation to throw an error on non singleton scoped bindings.
Bind type.IsBound type.OnActivation type.OnDeactivation type.Rebind type.RebindSync type.Unbind type.UnbindSync type.BindOnFluentSyntaxImplementation.onDeactivation to throw an error on non singleton scoped bindings.ServiceResolutionManager to provide right getChained operation after computed properties are reset.Container to properly manage bindings bindings on child containers after a parent container restores a snapshot.Updated getAll and getAllAsync options with missing chained property.
getAll and getAllAsync options with missing chained property.Updated multiInject decorator with optional MultiInjectOptions.
MultiInjectOptions.multiInject decorator with optional MultiInjectOptions.getAll and getAllAsync options with optionalchained property.Updated ServiceIdentifier to rely on Function again. This solves an issue affecting classes with protected constructors.
ServiceIdentifier to rely on Function again. This solves an issue affecting classes with protected constructors.Updated ServiceIdentifier removing Function in favor of a new AbstractNewable type. ServiceIdentifier now uses AbstractNewable instead of Function to
ServiceIdentifier removing Function in favor of a new AbstractNewable type. ServiceIdentifier now uses AbstractNewable instead of Function to better represent abstract classes. This provides better type safety and semantics.Fixed Container.snapshot so snapshot bindings are not updated after a snapshot is taken.
Container.snapshot so snapshot bindings are not updated after a snapshot is taken.Updated Container.get like methods to properly set bindings when autobind mode is set:
Container.get like methods to properly set bindings when autobind mode is set:
@injectable scopes properly handled.Updated Container with unloadSync.
Container with unloadSync.Container with loadSync.Updated ContainerModuleLoadOptions with rebind.
ContainerModuleLoadOptions with rebind.ContainerModuleLoadOptions with rebindSync.BindToFluentSyntax.toResolvedValue with additional type constraints.Updated Container with rebindSync.
Container with rebindSync.Container with unbindSync.Container with rebind.ContainerModuleLoadOptions with unbindSync.ContainerModuleLoadOptions.unbind to accept BindingIdentifier.Updated BindInFluentSyntax with getIdentifier.
BindingIdentifier.BindInFluentSyntax with getIdentifier.Container.unbind to handle BindingIdentifier.BindOnFluentSyntax with getIdentifier.BindWhenFluentSyntax with getIdentifier.### Added - Added BindingActivation. - Added BindingDeactivation.
BindingActivation.BindingDeactivation.Updated container.get like methods to no longer initialize twice singleton scoped bindings.
container.get like methods to no longer initialize twice singleton scoped bindings.Updated Container.get like methods to no longer initialize twice singleton scoped bindings.
Container.get like methods to no longer initialize twice singleton scoped bindings.Parity version with 7.0.0-alpha.5
Parity version with 7.0.0-alpha.5
Renamed BindingMetadata to BindingConstraints.
BindingMetadata to BindingConstraints.Container.get like methods.Parity version with 7.0.0-alpha.3.
Parity version with 7.0.0-alpha.3.
Updated BindToFluentSyntax with .toResolvedValue.
BindToFluentSyntax with .toResolvedValue.Updated Container with a plan cache. Container.get, Container.getAll, Container.getAllAsync and Container.getAsync performance has been improved.
Container with a plan cache. Container.get, Container.getAll, Container.getAllAsync and Container.getAsync performance has been improved.Updated GetOptions with autobind.
GetOptions with autobind.ContainerOptions with autobind.[Breaking] Removed deprecated LazyServiceIdentifer. Use LazyServiceIdentifier instead.
BindInFluentSyntax.BindInWhenOnFluentSyntax.BindOnFluentSyntax.BindingScope.BindToFluentSyntax.BindWhenFluentSyntax.BindWhenOnFluentSyntax.ContainerModuleLoadOptions.DynamicValueBuilder.Factory.GetOptions.GetOptionsTagConstraint.IsBoundOptions.MetadataName.MetadataTag.MetadataTargetName.OptionalGetOptions.Provider.ResolutionContext.bindingScopeValues.bindingTypeValues.injectFromBase decorator.injectable with optional scope.ContainerModule constructor to receive a callback with ContainerModuleLoadOptions instead of interfaces.ContainerModuleCallBack.ContainerModule.load to return Promise<void>.ContainerOptions with parent.ContainerOptions without autoBindInjectable and skipBaseClassChecks.Container to no longer expose id, parent nor options.Container with no applyCustomMetadataReader, applyMiddleware, createChild, merge and rebind methods.Container with no isCurrentBound, isBoundNamed, isBoundTagged methods in favor of using Container.isBound with isBoundOptions.Container with no getNamed, getTagged, tryGet, tryGetNamed and tryGetTagged methods in favor of Container.get with OptionalGetOptions options.Container with no getNamedAsync, getTaggedAsync, tryGetAsync, tryGetNamedAsync and tryGetTaggedAsync methods in favor of Container.getAsync with OptionalGetOptions options.Container with no getAllNamed, getAllTagged, tryGetAll, tryGetAllNamed and tryGetAllTagged methods in favor of Container.getAll with GetOptions options.Container with no getAllNamedAsync, getAllTaggedAsync, tryGetAllAsync, tryGetAllNamedAsync and tryGetAllTaggedAsync methods in favor of Container.getAllAsync with GetOptions options.Container with no loadAsync in favor of an async Container.load.Container with no unbindAsync in favor of an async Container.unbind.Container with no unbindAllAsync in favor of an async Container.unbindAll.Container with no unloadAsync in favor of an async Container.unload.decorate to no longer require a unexpected prototypes to decorate property nor methods.LazyServiceIdentifer. Use LazyServiceIdentifier instead.BindingScopeEnum. Use bindingScopeValues instead.BindingTypeEnum.TargetTypeEnum.METADATA_KEY.AsyncContainerModule. Use ContainerModule instead.createTaggedDecorator.MetadataReader.id.interfaces types. Rely on new types instead.traverseAncerstors.taggedConstraint.namedConstraint.typeConstraint.getServiceIdentifierAsString.multiBindToService.Solved issue with npm registry.
Added missing LazyServiceIdentifer.
LazyServiceIdentifer.Added interfaces.GetAllOptions.
interfaces.GetAllOptions.container.getAll with options optional param.container.getAllAsync with options optional param.interfaces.NextArgs with optional isOptional param.container with tryGet.container with tryGetAsync.container with tryGetTagged.container with tryGetTaggedAsync.container with tryGetNamed.container with tryGetNamedAsync.container with tryGetAll.container with tryGetAllAsync.container with tryGetAllTagged.container with tryGetAllTaggedAsync.container with tryGetAllNamed.container with tryGetAllNamedAsync.Updated interfaces.NextArgs with optional isOptional param.
interfaces.NextArgs with optional isOptional param.container with tryGet.container with tryGetAsync.container with tryGetTagged.container with tryGetTaggedAsync.container with tryGetNamed.container with tryGetNamedAsync.container with tryGetAll.container with tryGetAllAsync.container with tryGetAllTagged.container with tryGetAllTaggedAsync.container with tryGetAllNamed.container with tryGetAllNamedAsync.Added interfaces.GetAllOptions.
interfaces.GetAllOptions.container.getAll with options optional param.container.getAllAsync with options optional param.Fixed unexpected property access while running planning checks on injected base types.
Updated library to import reflect-metadata. Importing reflect-metadata before bootstraping a module in the userland is no longer required.
reflect-metadata. Importing reflect-metadata before bootstraping a module in the userland is no longer required..toService bindings..toService binding to properly disable caching any values.Updated ESM bundled types to solve circularly referenced types.
Updated ESM build to provide proper types regardless of the ts resolution module strategy in the userland.
Updated library to import reflect-metadata. Importing reflect-metadata before bootstraping a module in the userland is no longer required.
reflect-metadata. Importing reflect-metadata before bootstraping a module in the userland is no longer required..toService bindings..toService binding to properly disable caching any values.Updated planner with better error description when a binding can not be properly resolved.
Updated ESM build to be compatible with both bundler and NodeJS module resolution algorithms.
Updated planner with better error description when a binding can not be properly resolved.
Your coding agent can read these notes before it upgrades. Set up the MCP server →