Skip to main content
Module

x/rimbu/mod.ts

Rimbu is a TypeScript library focused on immutable, performant, and type-safe collections and other tools.
Go to Latest
import * as rimbu from "https://deno.land/x/rimbu@0.14.0/mod.ts";

Namespaces

Classes

A base class that can be used to easily create AsyncReducer instances.

A custom error instance.

A base class that can be used to easily create Reducer instances.

Variables

Returns an AsyncReducer that takes boolean values and outputs true if all input values are true, and false otherwise.

A Reducer that calculates the average of all given numberic input values.

Returns an AsyncReducer that remembers the amount of input items provided.

Returns an AsyncReducer that remembers the first input value.

Returns an AsyncReducer that remembers the first input value for which the given pred function returns true.

Returns an AsyncReducer that outputs true if no input values are received, false otherwise.

Returns an AsyncReducer that remembers the last input value.

Returns an AsyncReducer that remembers the last input value for which the given pred function returns true.

Returns a Reducer that remembers the maximum value of the numberic inputs.

Returns a Reducer that remembers the maximum value of the inputs using the given compFun to compare input values

Returns a Reducer that remembers the minimum value of the numberic inputs.

Returns a Reducer that remembers the minimum value of the inputs using the given compFun to compare input values

Returns an AsyncReducer that outputs true if one or more input values are received, false otherwise.

Returns an AsyncReducer that takes boolean values and outputs true if one or more input values are true, and false otherwise.

A Reducer that calculates the product of all given numeric input values.

A Reducer that sums all given numeric input values.

Returns an async transformer that produces windows/collections of windowSize size, each window starting skipAmount of elements after the previous, and optionally collected by a custom reducer.

Indicates, when returned from a collect function, to skip the value.

Regular expression used to split a path string into tokens.

An Eq instance that uses Object.is to determine if two objects are equal.

Returns a Reducer that takes boolean values and outputs true if all input values are true, and false otherwise.

A Reducer that calculates the average of all given numberic input values.

Returns a Reducer that remembers the amount of input items provided.

Returns a Reducer that remembers the first input value.

Returns a Reducer that remembers the first input value for which the given pred function returns true.

Returns a Reducer that outputs true if no input values are received, false otherwise.

Returns a Reducer that remembers the last input value.

Returns a Reducer that remembers the last input value for which the given pred function returns true.

Returns a Reducer that remembers the maximum value of the numberic inputs.

Returns a Reducer that remembers the maximum value of the inputs using the given compFun to compare input values

Returns a Reducer that remembers the minimum value of the numberic inputs.

Returns a Reducer that remembers the minimum value of the inputs using the given compFun to compare input values

Returns a Reducer that outputs true if one or more input values are received, false otherwise.

Returns a Reducer that takes boolean values and outputs true if one or more input values are true, and false otherwise.

A Reducer that calculates the product of all given numeric input values.

A Reducer that sums all given numeric input values.

Returns a transformer that produces windows/collections of windowSize size, each window starting skipAmount of elements after the previous, and optionally collected by a custom reducer.

Functions

Returns the value or promised value contained in an AsyncOptLazy instance of type T.

Returns the value contained in an AsyncOptLazy instance of type T as a promise.

Returns an AsyncReducer that combines multiple input reducers by providing input values to all of them and collecting the outputs in an array.

Returns an AsyncReducer that combines multiple input reducers by providing input values to all of them and collecting the outputs in the shape of the given object.

Returns an AsyncReducer that outputs false as long as the given elem has not been encountered in the input values, true otherwise.

Returns an AsyncReducer with the given options:

Returns an AsyncReducer of which the input, state, and output types are the same.

Returns an AsyncReducer of which the state and output types are the same.

Returns an AsyncReducer that ouputs true as long as all input values satisfy the given pred, false otherwise.

Returns a Reducer that joins the given input values into a string using the given options.

Returns a Reducer that ouputs false as long as no input value satisfies given pred, true otherwise.

Returns an AsyncReducer that collects received input values in an array, and returns a copy of that array as an output value when requested.

Returns a AsyncReducer that collects received input tuples into a mutable JS Map, and returns a copy of that map when output is requested.

Returns an AsyncReducer that collects 2-tuples containing keys and values into a plain JS object, and returns a copy of that object when output is requested.

Returns an AsyncReducer that collects received input values into a mutable JS Set, and returns a copy of that map when output is requested.

Returns an async transformer that returns only those elements from the input that are different to previous element according to the optionally given eq function.

Returns a Comp instance that compares any value using default comparison functions. For Iterables and objects, their elements are compared recursively.

Returns a Comp instance that compares any value using default comparison functions, but never recursively compares Iterables or objects. In those cases, it will use the stringComp instance.

Returns a Comp instance that compares any value using default comparison functions. For Iterables and objects, their elements are compared only one level deep for performance and to avoid infinite recursion.

Returns a Comp instance converts values to string with JSON.stringify, and orders the resulting string naturally.

Returns a any Comp instance that orders any according to their toString values.

Returns a default bigint Comp instance that orders bigint numbers naturally.

Returns a default boolean Comp instance that orders booleans according to false < true.

Returns a Comp instance that orders objects with a valueOf method according to the given valueComp instance for the valueOf values.

Returns a Date Comp instance that orders Dates according to their .valueOf value.

Returns the default Comp instance, which is the Comp.anyDeepComp() instance.

Returns a Comp instance the reverses the order of the given comp instance.

Returns a Comp instance for Iterable objects that orders the Iterables by comparing the elements with the given itemComp Comp instance.

Returns a default number Comp instance that orders numbers naturally.

Returns a Comp instance for objects that orders the object keys according to the given keyComp, and then compares the corresponding values using the given valueComp. Objects are then compared as follows: starting with the smallest key of either object:

  • if only one of the objects has the key, the object with the key is considered to be larger than the other
  • if both objects have the key, the values are compared with valueComp. If the values are not equal, this result is returned.

Returns a Comp instance that compares strings in a case-insensitive way.

Returns a string Comp instance that orders strings according to their indexed char codes.

Returns a Comp instance that compares strings based on the string's localeCompare method.

Returns an Eq equality instance thet will return true when the given comp comparable instance returns 0.

Returns a Comp instance that extends the given comp instance with the capability to handle null values, where null is considered to be smaller than any other value, and equal to another null.

Returns a Comp instance that extends the given comp instance with the capability to handle undefined values, where undefined is considered to be smaller than any other value, and equal to another undefined.

Returns the value resulting from selecting the given path in the given source object. It supports optional chaining for nullable values or values that may be undefined, and also for accessing objects inside an array. There is currently no support for forcing non-null (the ! operator).

Returns a function that gets the value at the given string path inside an object.

Returns true if the given value object matches the given matcher, false otherwise.

Returns true if the given value object matches the given matcher at the given path, false otherwise.

Returns a function that matches a given value with the given matcher at the given string path.

Returns a function that matches a given value with the given matcher.

Returns an immutably updated version of the given value where the given patchItems have been applied to the result. The Rimbu patch notation is as follows:

  • if the target is a simple value or array, the patch can be the same type or a function returning the same type
  • if the target is a tuple (array of fixed length), the patch be the same type or an object containing numeric keys with patches indicating the tuple index to patch
  • if the target is an object, the patch can be the same type, or an array containing partial keys with their patches for the object

Patches the value at the given path in the source to the given value. Because the path to update must exist in the source object, optional chaining and array indexing is not allowed.

Returns a function that patches a given value with the given patchItems at the given path.

Returns a function that patches a given source with the given patchItems.

Return the given path string split into an array of subpaths.

Returns the same value wrapped in the Protected type.

Returns the result of applying the given selector shape to the given source value.

Returns the result of applying the given selector shape to the given source value.

Returns a function that selects a certain shape from a given value with the given selector at the given string path.

Returns a function that selects a certain shape from a given value with the given selector.

Returns a curried API with a known target type. This can be useful for using the methods in contexts where the target type can be inferred from the usage.

Returns an Eq instance that checks equality of any values. For composed values (objects and iterables) it will recursively compare the contained values.

Returns an Eq instance that checks equality of any values. For composed values (objects and iterables) it will compare with Object.is.

Returns an Eq instance that considers values equal their JSON.stringify values are equal.

Returns an Eq instance that checks equality of any values. For composed values (objects and iterables) it will enter 1 level, and if again compound values are found, they are compared with Object.is.

Returns an Eq instance that considers strings equal taking the given or default locale into account.

Returns an Eq instance that compares Date objects according to their valueOf value.

Returns the default Eq instance, which is the Eq.anyDeepEq() instance.

Returns an Eq instance that compares Iterables by comparing their elements with the given itemEq Eq instance.

Returns an Eq instance that checks equality of objects containing property values of type V by iteratively applying given valueEq to each of the object's property values.

Returns an Eq instance that considers strings equal regardless of their case.

Returns an Eq instance that considers strings equal when all their charcodes are equal.

Returns an Eq instance for tuples that considers two tuples [A, B] and [C, D] equal if [A, B] equals [C, D], or if [A, B] equals [D, C]

Returns an Eq instance for objects that have a valueOf method. It returns true if the .valueOf values of both given objects are equal.

Throws an Err.ForcedError error when called.

Returns a function that, when called, throws an Err.ForcedError with the given message string.

Returns a Hasher instance that hashes any value, and traverses into an object or array to hash its elements.

Returns a Hasher instance that hashes any value, but never traverses into an object or array to hash its elements. In those cases it will use toString.

Returns a Hasher instance that hashes any value by hashing the string resulting from applying JSON.stringify to the value.

Returns a Hasher instance that hashes any value, but only traverses into an object or array to hash its elements one level deep. After one level, it will use toString.

Returns a Hasher instance that hashes the string representation of any value

Returns a Hasher that hashes arrays of elements by sampling the array and using the given itemHasher to hash the sampled elements.

Returns a Hasher instance that hashes bigints.

Returns a Hasher instance that hashes booleans.

Returns a Hasher instance that hashes the .valueOf value of the given object using the given valueHasher for instances of given cls class.

Returns a Hasher instance that hashes Dates.

Returns a Hasher instance that hashes numbers, including 'special' values like NaN and infinities.

Returns a Hasher instance that hashes objects of key type K and value type V. If a value if an object or array, it will recursively hash its values.

Returns a Hasher instance that hashes objects of key type K and value type V.

Returns a Hasher instance that hashes objects of key type K and value type V. If a value if an object or array, it will convert those values to a string.

Returns a Hasher instance that hashes any StreamSource limited to a certain amount of elements to prevent haning on infinite streams.

Returns a Hasher instance for string values.

Returns a Hasher that will return equal hash values for values in a tuple regardless of their order, and uses the given hasher function to hash the tuple elements.

Returns, given the range IndexRange, a normalized tuple containing the start index, and optionally an end index.

Returns, given the range IndexRange, and a target maximum length, the actual index range. This can be one of three options:

  • 'empty': there are no elements within the range
  • 'all': all elements are within the range
  • [start: number, end: number]: an inclusive range of element indices within the given range

Returns the value contained in an OptLazy instance of type T.

Returns the value contained in an OptLazyOr instance of type T, or the given otherValue if the lazy function returns it.

Simplifies a given range Range input for easier processing, by returning optional start and end ranges including whether they are inclusive or exclusive

Returns a Reducer that combines multiple input reducers by providing input values to all of them and collecting the outputs in an array.

Returns a Reducer that combines multiple input reducers by providing input values to all of them and collecting the outputs in the shape of the given object.

Returns a Reducer that outputs false as long as the given elem has not been encountered in the input values, true otherwise.

Returns a Reducer with the given options:

Returns a Reducer of which the input, state, and output types are the same.

Returns a Reducer of which the state and output types are the same.

Returns a Reducer that ouputs true as long as all input values satisfy the given pred, false otherwise.

Returns a Reducer that joins the given input values into a string using the given options.

Returns a Reducer that ouputs false as long as no input value satisfies given pred, true otherwise.

Returns a Reducer that collects received input values in an array, and returns a copy of that array as an output value when requested.

Returns a Reducer that collects received input tuples into a mutable JS Map, and returns a copy of that map when output is requested.

Returns a Reducer that collects 2-tuples containing keys and values into a plain JS object, and returns a copy of that object when output is requested.

Returns a Reducer that collects received input values into a mutable JS Set, and returns a copy of that map when output is requested.

Returns a transformer that returns only those elements from the input that are different to previous element according to the optionally given eq function.

Returns a stream of connections that can be reached in the given graph starting at the given startNode, and using breadth-first traversal. It can avoid loops if needed in a custom way by supplying the addVisitedNode function.

Returns a stream of connections that can be reached in the given graph starting at the given startNode, and using breadth-first traversal. It avoids loops by internally placing the visited nodes in a HashSet builder.

Returns a stream of connections that can be reached in the given graph starting at the given startNode, and using breadth-first traversal. It avoids loops by internally placing the visited nodes in a SortedSet builder.

Returns a stream of connections that can be reached in the given graph starting at the given startNode, and using depth-first traversal. It can avoid loops if needed in a custom way by supplying the addVisitedNode function.

Returns a stream of connections that can be reached in the given graph starting at the given startNode, and using depth-first traversal. It avoids loops by internally placing the visited nodes in a HashSet builder.

Returns a stream of connections that can be reached in the given graph starting at the given startNode, and using depth-first traversal. It avoids loops by internally placing the visited nodes in a SortedSet builder.

Returns a new TraverseState instance, using optionally given startIndex as a start index value.

Returns the given tuple with the given values appended.

Returns a Tuple containing the elements of given tuple1 followed by the elements of given tuple2.

Returns the first element of a Tuple.

Returns the item at the given index in the givn tuple.

Returns a Tuple containing all but the last element of the given tuple.

Returns the last element of a Tuple.

Convenience method to type Tuple types

Returns the second element of a Tuple.

Returns a Tuple containing all but the first element of the given tuple.

Returns a copy of the given tuple where the element at given index is updated with the given updater.

Returns the result of given update parameter, where it can either directly give a new value, or it is a function receiving the given value, and returns a new value.

Interfaces

An type-invariant immutable arrow (directed) graph. See the Graph documentation and the ArrowGraph API documentation

A mutable ArrowGraph builder used to efficiently create new immutable instances. See the Graph documentation and the ArrowGraph.Builder API documentation

The ArrowGraph's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable arrow (directed) graph. See the Graph documentation and the ArrowGraph API documentation

Utility interface that provides higher-kinded types for this collection.

An type-invariant immutable valued arrow (directed) graph. The connections are internally maintained using hashed collections See the Graph documentation and the ArrowGraphHashed API documentation

A mutable ArrowGraphHashed builder used to efficiently create new immutable instances. See the Graph documentation and the ArrowGraphHashed.Builder API documentation

The ArrowGraphHashed's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued arrow (directed) graph. The connections are internally maintained using hashed collections See the Graph documentation and the ArrowGraphHashed API documentation

Utility interface that provides higher-kinded types for this collection.

An type-invariant immutable valued arrow (directed) graph. The connections are internally maintained using sorted collections See the Graph documentation and the ArrowGraphSorted API documentation

A mutable ArrowGraphSorted builder used to efficiently create new immutable instances. See the Graph documentation and the ArrowGraphSorted.Builder API documentation

The ArrowGraphSorted's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued arrow (directed) graph. The connections are internally maintained using sorted collections See the Graph documentation and the ArrowGraphSorted API documentation

Utility interface that provides higher-kinded types for this collection.

An type-invariant immutable valued arrow (directed) graph. See the Graph documentation and the ArrowValuedGraph API documentation

A mutable ArrowValuedGraph builder used to efficiently create new immutable instances. See the Graph documentation and the ArrowValuedGraph.Builder API documentation

The ArrowValuedGraph's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued arrow (directed) graph. See the Graph documentation and the ArrowValuedGraph API documentation

Utility interface that provides higher-kinded types for this collection.

An type-invariant immutable valued arrow (directed) graph. The nodes are internally maintained using HashMaps See the Graph documentation and the ArrowValuedGraphHashed API documentation

A mutable ArrowValuedGraphHashed builder used to efficiently create new immutable instances. See the Graph documentation and the ArrowValuedGraphHashed.BuilderAPI documentation

The ArrowValuedGraphHashed's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued arrow (directed) graph. The nodes are internally maintained using HashMaps See the Graph documentation and the ArrowValuedGraphHashed API documentation

Utility interface that provides higher-kinded types for this collection.

An type-invariant immutable valued arrow (directed) graph. The nodes are internally maintained using SortedMaps See the Graph documentation and the ArrowValuedGraphSorted API documentation

A mutable ArrowValuedGraphSorted builder used to efficiently create new immutable instances. See the Graph documentation and the ArrowValuedGraphSorted.Builder API documentation

The ArrowValuedGraphSorted's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued arrow (directed) graph. The nodes are internally maintained using SortedMaps See the Graph documentation and the ArrowValuedGraphSorted API documentation

Utility interface that provides higher-kinded types for this collection.

A possibly infinite asynchronous sequence of elements of type T. See the Stream documentation and the AsyncStream API documentation

A non-empty and possibly infinite asynchronous sequence of elements of type T. See the Stream documentation and the AsyncStream API documentation

A type-invariant immutable bi-directional Map where keys and values have a one-to-one mapping. See the BiMap documentation and the BiMap API documentation

A mutable BiMap builder used to efficiently create new immutable instances. See the BiMap documentation and the BiMap.Builder API documentation

The BiMap's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable bi-directional Map where keys and values have a one-to-one mapping. See the BiMap documentation and the BiMap API documentation * @typeparam K - the key type

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable bi-directional MultiMap where keys and values have a many-to-many mapping. See the BiMultiMap documentation and the BiMultiMap API documentation

A mutable BiMultiMap builder used to efficiently create new immutable instances. See the BiMultiMap documentation and the BiMultiMap.Builder API documentation

The BiMultiMap's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable bi-directional MultiMap where keys and values have a many-to-many mapping. See the BiMultiMap documentation and the BiMultiMap API documentation

Utility interface that provides higher-kinded types for this collection.

An object providing methods to compare two values of type K.

Typed and curried Deep API, used in situations where the target type is known but the value will be applied later.

An type-invariant immutable edge (undirected) graph. See the Graph documentation and the EdgeGraph API documentation

A mutable EdgeGraph builder used to efficiently create new immutable instances. See the Graph documentation and the EdgeGraph.Builder API documentation

The EdgeGraph's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable edge (undirected) graph.

Utility interface that provides higher-kinded types for this collection.

An type-invariant immutable valued edge (undirected) graph. The connections are internally maintained using hashed collections See the Graph documentation and the EdgeGraphHashed API documentation

A mutable EdgeGraphHashed builder used to efficiently create new immutable instances. See the Graph documentation and the EdgeGraphHashed.Builder API documentation

The EdgeGraphHashed's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued edge (undirected) graph. The connections are internally maintained using hashed collections See the Graph documentation and the EdgeGraphHashed API documentation

Utility interface that provides higher-kinded types for this collection.

An type-invariant immutable valued edge (undirected) graph. The connections are internally maintained using sorted collections See the Graph documentation and the EdgeGraphSorted API documentation

A mutable EdgeGraphSorted builder used to efficiently create new immutable instances. See the Graph documentation and the EdgeGraphSorted.Builder API documentation

The EdgeGraphSorted's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued edge (undirected) graph. The connections are internally maintained using sorted collections See the Graph documentation and the EdgeGraphSorted API documentation

Utility interface that provides higher-kinded types for this collection.

An type-invariant immutable valued edge (undirected) graph. See the Graph documentation and the EdgeValuedGraph API documentation

A mutable EdgeValuedGraph builder used to efficiently create new immutable instances. See the Graph documentation and the EdgeValuedGraph.Builder API documentation

The EdgeValuedGraph's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued edge (undirected) graph. See the Graph documentation and the EdgeValuedGraph API documentation

Utility interface that provides higher-kinded types for this collection.

An type-invariant immutable valued edge (undirected) graph. The nodes are internally maintained using HashMaps See the Graph documentation and the EdgeValuedGraphHashed API documentation

A mutable EdgeValuedGraphHashed builder used to efficiently create new immutable instances. See the Graph documentation and the EdgeValuedGraphHashed.Builder API documentation

The EdgeValuedGraphHashed's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued edge (undirected) graph. The nodes are internally maintained using HashMaps See the Graph documentation and the EdgeValuedGraphHashed API documentation

Utility interface that provides higher-kinded types for this collection.

An type-invariant immutable valued edge (undirected) graph. The nodes are internally maintained using SortedMaps See the Graph documentation and the EdgeValuedGraphSorted API documentation

A mutable EdgeValuedGraphSorted builder used to efficiently create new immutable instances. See the Graph documentation and the EdgeValuedGraphSorted.Builder API documentation

The EdgeValuedGraphSorted's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued edge (undirected) graph. The nodes are internally maintained using SortedMaps See the Graph documentation and the EdgeValuedGraphSorted API documentation

Utility interface that provides higher-kinded types for this collection.

An interface that extends the standard Iterable interface to return a FastIterator instead of a normal Iterator.

An iterator that extends the default Iterator interface with methods that give more performance.

An type-invariant immutable graph. See the Graph documentation and the Graph API documentation

A mutable Graph builder used to efficiently create new immutable instances. See the Graph documentation and the Graph.Builder API documentation

The EdgeValuedGraGraphphSorted's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable graph. See the Graph documentation and the Graph API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable bi-directional MultiMap where keys and values have a many-to-many mapping. Its keys and values are hashed. See the BiMultiMap documentation and the HashBiMultiMap API documentation

A mutable HashBiMultiMap builder used to efficiently create new immutable instances. See the BiMultiMap documentation and the HashBiMultiMap.Builder API documentation

The HashBiMultiMap's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable bi-directional MultiMap where keys and values have a many-to-many mapping. Its keys and values are hashed. See the BiMultiMap documentation and the HashBiMultiMap API documentation

Utility interface that provides higher-kinded types for this collection.

Interface used to hash objects for hashed collections.

A type-invariant immutable Map of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys.

  • The HashMap uses the context's hasher instance to hash keys for performance.
  • The HashMap uses the context's eq function to determine equivalence between keys.

A mutable HashMap builder used to efficiently create new immutable instances. See the Map documentation and the HashMap.Builder API documentation

A context instance for a HashMap that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Map of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys.

  • The HashMap uses the context's hasher instance to hash keys for performance.
  • The HashMap uses the context's eq function to determine equivalence between keys.

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable MultiMap of key type K, and value type V. In the MultiMap, each key has at least one value. See the MultiMap documentation and the HashMultiMapHashValue API documentation

A mutable HashMultiMapHashValue builder used to efficiently create new immutable instances. See the MultiMap documentation and the HashMultiMapHashValue.Builder API documentation

A context instance for an HashMultiMapHashValue that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable MultiMap of key type K, and value type V. In the MultiMap, each key has at least one value. See the MultiMap documentation and the HashMultiMapHashValue API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable MultiMap of key type K, and value type V. In the MultiMap, each key has at least one value. See the MultiMap documentation and the HashMultiMapSortedValue API documentation

A mutable HashMultiMapSortedValue builder used to efficiently create new immutable instances. See the MultiMap documentation and the HashMultiMapSortedValue.Builder API documentation

A context instance for an HashMultiMapSortedValue that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable MultiMap of key type K, and value type V. In the MultiMap, each key has at least one value. See the MultiMap documentation and the HashMultiMapSortedValue API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable MultiSet of value type T. In the MultiSet, each value can occur multiple times. See the MultiSet documentation and the HashMultiSet API documentation

A mutable HashMultiSet builder used to efficiently create new immutable instances. See the MultiSet documentation and the HashMultiSet.Builder API documentation

A context instance for an HashMultiSet that acts as a factory for every instance of this type of collection.

A type-invariant immutable MultiSet of value type T. In the MultiSet, each value can occur multiple times. See the MultiSet documentation and the HashMultiSet API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Set of value type T. In the Set, there are no duplicate values. See the Set documentation and the HashSet API documentation

A mutable HashSet builder used to efficiently create new immutable instances. See the Set documentation and the HashSet.Builder API documentation

A context instance for a HashSet that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Set of value type T. In the Set, there are no duplicate values. See the Set documentation and the HashSet API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the HashTableHashColumn API documentation

A non-empty type-invariant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the HashTableHashColumn API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the HashTableSortedColumn API documentation

A non-empty type-invariant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the HashTableSortedColumn API documentation

Utility interface that provides higher-kinded types for this collection.

A random accessible immutable sequence of values of type T. See the List documentation and the List API documentation

A mutable builder to create immutable List instances in a more efficient way. See the List documentation and the List.Builder API documentation

A context instance for List that acts as a factory for every instance of this type of collection.

A non-empty random accessible immutable sequence of values of type T. See the List documentation and the List API documentation

A utility interface to extract related List types.

A type-invariant immutable MultiMap of key type K, and value type V. In the Map, each key has at least one value. See the MultiMap documentation and the MultiMap API documentation

A mutable MultiMap builder used to efficiently create new immutable instances. See the MultiMap documentation and the MultiMap.Builder API documentation

A context instance for MultiMap implementations that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable MultiMap of key type K, and value type V. In the Map, each key has at least one value. See the MultiMap documentation and the MultiMap API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable MultiSet of value type T. In the MultiSet, each value can occur multiple times. See the MultiSet documentation and the MultiSet API documentation

A mutable MultiSet builder used to efficiently create new immutable instances. See the MultiSet documentation and the MultiSet.Builder API documentation

A context instance for MultiSet implementations that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable MultiSet of value type T. In the MultiSet, each value can occur multiple times. See the MultiSet documentation and the MultiSet API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Ordered HashMap of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the OrderedHashMap API documentation

A mutable OrderedHashMap builder used to efficiently create new immutable instances. See the Map documentation and the OrderedHashMap.Builder API documentation

A context instance for an OrderedHashMap that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Ordered HashMap of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the OrderedHashMap API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Ordered HashSet of value type T. In the Set, there are no duplicate values. See the Set documentation and the OrderedHashSet API documentation

A mutable OrderedHashSet builder used to efficiently create new immutable instances. See the Set documentation and the OrderedHashSet.Builder API documentation

A context instance for an OrderedHashSet that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Ordered HashSet of value type T. In the Set, there are no duplicate values. See the Set documentation and the OrderedHashSet API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Ordered Map of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the OrderedMap API documentation

A mutable OrderedMap builder used to efficiently create new immutable instances. See the Map documentation and the OrderedMap.Builder API documentation

A context instance for an OrderedMap that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Ordered Map of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the OrderedMap API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Ordered Set of value type T. In the Set, there are no duplicate values. See the Set documentation and the OrderedSet API documentation

A mutable OrderedSet builder used to efficiently create new immutable instances. See the Set documentation and the OrderedSet.Builder API documentation

A non-empty type-invariant immutable Ordered SortedSet of value type T. In the Set, there are no duplicate values. See the Set documentation and the OrderedSet API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Ordered SortedMap of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the OrderedSortedMap API documentation

A mutable OrderedSortedMap builder used to efficiently create new immutable instances. See the Map documentation and the OrderedSortedMap.Builder API documentation

A context instance for an OrderedSortedMap that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Ordered SortedMap of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the OrderedSortedMap API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Ordered SortedSet of value type T. In the Set, there are no duplicate values. See the Set documentation and the OrderedSortedSet API documentation

A mutable OrderedSortedSet builder used to efficiently create new immutable instances. See the Set documentation and the OrderedSortedSet.Builder API documentation

A context instance for an OrderedSortedSet that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Ordered SortedSet of value type T. In the Set, there are no duplicate values. See the Set documentation and the OrderedSortedSet API documentation

Utility interface that provides higher-kinded types for this collection.

The Implementation interface for a Reducer, which also exposes the internal state type.

A type-invariant immutable Map of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the RMap API documentation

A mutable RMap builder used to efficiently create new immutable instances. See the Map documentation and the RMap.Builder API documentation

A context instance for RMap implementations that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Map of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the RMap API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Set of value type T. In the Set, there are no duplicate values. See the Set documentation and the RSet API documentation

A mutable Set builder used to efficiently create new immutable instances. See the Set documentation and the RSet.Builder API documentation

A context instance for Map implementations that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Set of value type T. In the Set, there are no duplicate values. See the Set documentation and the RSet API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable bi-directional MultiMap where keys and values have a many-to-many mapping. Its keys and values are sorted. See the BiMultiMap documentation and the HashBiMultiMap API documentation

A mutable SortedBiMultiMap builder used to efficiently create new immutable instances. See the BiMultiMap documentation and the HashBiMultiMap.Builder API documentation

The SortedBiMultiMap's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable bi-directional MultiMap where keys and values have a many-to-many mapping. Its keys and values are sorted. See the BiMultiMap documentation and the HashBiMultiMap API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Map of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the SortedMap API documentation

A mutable SortedMap builder used to efficiently create new immutable instances. See the Map documentation and the SortedMap.Builder API documentation

A context instance for a HashMap that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Map of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the SortedMap API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable MultiMap of key type K, and value type V. In the MultiMap, each key has at least one value. See the MultiMap documentation and the SortedMultiMapHashValue API documentation

A mutable SortedMultiMapHashValue builder used to efficiently create new immutable instances. See the MultiMap documentation and the SortedMultiMapHashValue.Builder API documentation

A context instance for an SortedMultiMapHashValue that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable MultiMap of key type K, and value type V. In the MultiMap, each key has at least one value. See the MultiMap documentation and the SortedMultiMapHashValue API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable MultiMap of key type K, and value type V. In the MultiMap, each key has at least one value. See the MultiMap documentation and the SortedMultiMapSortedValue API documentation

A mutable SortedMultiMapSortedValue builder used to efficiently create new immutable instances. See the MultiMap documentation and the SortedMultiMapSortedValue.Builder API documentation

A context instance for an SortedMultiMapSortedValue that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable MultiMap of key type K, and value type V. In the MultiMap, each key has at least one value. See the MultiMap documentation and the SortedMultiMapSortedValue API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable MultiSet of value type T. In the MultiSet, each value can occur multiple times. See the MultiSet documentation and the SortedMultiSet API documentation

A mutable SortedMultiSet builder used to efficiently create new immutable instances. See the MultiSet documentation and the SortedMultiSet.Builder API documentation

A context instance for an SortedMultiSet that acts as a factory for every instance of this type of collection.

A type-invariant immutable MultiSet of value type T. In the MultiSet, each value can occur multiple times. See the MultiSet documentation and the SortedMultiSet API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Set of value type T. In the Set, there are no duplicate values. See the Set documentation and the SortedSet API documentation

A mutable SortedSet builder used to efficiently create new immutable instances. See the Set documentation and the SortedSet.Builder API documentation

A context instance for a SortedSet that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Set of value type T. In the Set, there are no duplicate values. See the Set documentation and the SortedSet API documentation

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the SortedTableHashColumn API documentation

A non-empty type-invariant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value.

Utility interface that provides higher-kinded types for this collection.

A type-invariant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the SortedTableSortedColumn API documentation

A non-empty type-invariant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the SortedTableSortedColumn API documentation

Utility interface that provides higher-kinded types for this collection.

A possibly infinite sequence of elements of type T. See the Stream documentation and the Stream API documentation

A non-empty and possibly infinite sequence of elements of type T. See the Stream documentation and the Stream API documentation

An object that can create a Stream of elements of type T.

An object that can create a non-empty Stream of elements of type T.

A type-invariant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the Table API documentation

A mutable Table builder used to efficiently create new immutable instances. See the Table documentation and the Table.Builder API documentation

A context instance for Table implementations that acts as a factory for every instance of this type of collection.

A non-empty type-invariant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the Table API documentation

Utility interface that provides higher-kinded types for this collection.

Utility type to convert some object to a JSON serializable format.

An object used to track the state of a traversal, e.g. a forEach.

An type-invariant immutable valued graph. See the Graph documentation and the ValuedGraph API documentation

A mutable ValuedGraph builder used to efficiently create new immutable instances. See the Graph documentation and the ValuedGraph.Builder API documentation

The ValuedGraph's Context instance that serves as a factory for all related immutable instances and builders.

A non-empty type-invariant immutable valued graph. See the Graph documentation and the ValuedGraph API documentation

Utility interface that provides higher-kinded types for this collection.

An type-variant immutable graph. See the Graph documentation and the VariantGraph API documentation

A non-empty type-variant immutable graph. See the Graph documentation and the VariantGraph API documentation

Utility interface that provides higher-kinded types for this collection.

A type-variant immutable Map of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the VariantMap API documentation

A non-empty type-variant Map of key type K, and value type V. In the Map, each key has exactly one value, and the Map cannot contain duplicate keys. See the Map documentation and the VariantMap API documentation

Utility interface that provides higher-kinded types for this collection.

A type-variant immutable MultiMap of key type K, and value type V. In the Map, each key has at least one value. See the MultiMap documentation and the VariantMultiMap API documentation

A non-empty type-variant immutable MultiMap of key type K, and value type V. In the Map, each key has at least one value. See the MultiMap documentation and the VariantMultiMap API documentation

Utility interface that provides higher-kinded types for this collection.

A type-variant immutable MultiSet of value type T. In the MultiSet, each value can occur multiple times. See the MultiSet documentation and the VariantMultiSet API documentation

A non-empty type-variant immutable MultiSet of value type T. In the MultiSet, each value can occur multiple times. See the MultiSet documentation and the VariantMultiSet API documentation

Utility interface that provides higher-kinded types for this collection.

A type-variant immutable Set of value type T. In the Set, there are no duplicate values. See the Set documentation and the VariantSet API documentation

A non-empty type-variant immutable Set of value type T. In the Set, there are no duplicate values. See the Set documentation and the VariantSet API documentation

Utility interface that provides higher-kinded types for this collection.

A type-variant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the VariantTable API documentation

A non-empty type-variant immutable Table of row key type R, column key type C, and value type V. In the Table, a combination of a row and column key has exactly one value. See the Table documentation and the VariantTable API documentation

Utility interface that provides higher-kinded types for this collection.

An type-variant immutable valued graph. See the Graph documentation and the VariantValuedGraph API documentation

A non-empty type-variant immutable valued graph. See the Graph documentation and the VariantValuedGraph API documentation

Utility interface that provides higher-kinded types for this collection.

Type Aliases

Accepts all arrays with at least one element.

A potentially asynchronous function used in collect methods to collect values from a collection. This is basically a single-pass map and filter.

A potentially lazy and/or asynchronous value of type T.

An AsyncReducer is a stand-alone asynchronous calculation that takes input values of type I, and, when requested, produces an output value of type O.

An AsyncReducer that produces instances of AsyncStreamSource.

An AsyncReducer that produces instances AsyncStreamSource.NonEmpty.

A function used in collect methods to collect values from a collection. This is basically a single-pass map and filter.

Indicates, when returned from a collect function, to skip the value.

The type to determine the allowed input values for the match function.

The type that determines allowed matchers for arrays/tuples.

Keys used to indicate an array match traversal.

Defines an object containing exactly one CompoundType key, having an array of matchers.

Compount matcher for objects, can only be an array staring with a compound type keyword.

Compound keys used to indicate the type of compound.

Determines the various allowed match types for given type T.

Utility type for collecting match failure reasons

Type used to determine the allowed function types. Always includes booleans.

The type that determines allowed matchers for objects.

The type to determine allowed matchers for object properties.

Defines an object containing exactly one TraversalType key, having a matcher for the array element type.

Type used to indicate an object containing matches for tuple indices.

A type that either directly results in result type S or is a function taking the value, parent, and root values, and returns a value of type S.

A type to determine the allowed input type for the patch function.

The entry type for a (nested) patch. Can be either a patch object or a function accepting the nested patch function and returning a patch object.

A function patch type that is a function taking the current value, the parent and root values, and returns a return value.

Utility type to exclude Iterable types.

A type defining the allowed patch values for objects.

A type defining the allowed patch values for object properties.

A type defining the allowed patch values for tuples.

Either result type S, or a patch function with the value type, the parent type, and the root type.

A string representing a path into an (nested) object of type T.

Utility type to only add non-empty string types to a string array.

Determines the allowed paths for an array.

Determines the allowed paths into a value of type T.

Determines whether the given type T is optional, that is, whether it can be null or undefined.

Returns type T if Maybe is false, T | undefined otherwise.

Determines the allowed non-empty paths into a value of type T.

Determines the allowed paths into a non-optional value of type T.

Determines the allowed paths for an object.

Determines the allowed path part seperator based on the input types.

Determines the allowed paths for a tuple. Since tuples have fixed types, they do not need to be optional, in contrast to arrays.

The result type when selecting from object type T a path with type P.

Determines the result type for an array of tokens representing subpaths in type T.

Determines the result of getting the property/index K from type T, taking into account that the value may be optional.

Converts a path string into separate tokens in a string array.

A string representing a path into an (nested) object of type T.

The allowed values of a split path.

A deep readonly typed version of given type T. Makes all properties or elements read only. It maps types using the following rules:

  • arrays and tuples become readonly counterparts, and all element types are wrapped in Protected if applicable
  • Maps of key type K and value type V become Maps of key type Protected<K> and value type Protected<V>
  • Sets of element type E become Sets of element type Protected<E>
  • Promises of value type E become Promises of value type Protected<E>
  • Objects that have only simple properties (no functions or iterators) will have all the properties as Protected if applicable
  • Any other type will not be mapped

Type defining the allowed selectors on an object of type T. Selectors can be:

  • a path string into type T.
  • a function receiving a Protected version of type T, and returning an arbitrary value.
  • a tuple of Selectors for type T
  • an object where the property values are Selectors for type T.

Type defining the result type of applying the SL selector type to the T value type.

Type defining the shape of allowed selectors, used to improve compiler checking.

A function returning true if given v1 and v2 should be considered equal.

A flexible range specification for numeric indices. If a start or end is defined, a tuple can be used where the second item is a boolean indicating whether that end is inclusive or exclusive. An IndexRange can have one of the following forms:

  • { amount: number }
  • { start: number }
  • { start: number, amount: number }
  • { start: number, end: number }
  • { start: number, end: [number, boolean] }
  • { start: [number, boolean] }
  • { start: [number, boolean], amount: number }
  • { start: [number, boolean], end: number }
  • { start: [number, boolean], end: [number, boolean] }
  • { end: number }
  • { end: [number, boolean] }

A type that is either a value T or a promise yielding a value of type T.

A potentially lazy value of type T.

A potentially lazy value that, in case of a lazy function, received a default value that it can return.

A range definition for any type of (orderable) value. If a start or end is defined, a tuple can be used where the second item is a boolean indicating whether that end is inclusive (true) or exclusive (false). A Range of type T can have one of the following forms:

  • { end: T }
  • { end: [T, boolean] }
  • { start: T }
  • { start: T, end: T }
  • { start: T, end: [T, boolean] }
  • { start: [T, boolean] }
  • { start: [T, boolean], end: T }
  • { start: [T, boolean], end: [T, boolean] }

A Reducer is a stand-alone calculation that takes input values of type I, and, when requested, produces an output value of type O.

Accepts all types of T and U where T extends U or U extends T.

Any object that is Iterable, a Stream, or can produce a Stream.

Any object that is a non-empty Stream, can produce a non-empty Stream, or is a non-empty array.

Accepts all strings with at least one character.

Accepts all types of T and S where S extends T, and results in the lower bound S.

Accepts all types of T and U where T extends U, and result in the upper bound U.

A Reducer that produces instances of StreamSource.

A Reducer that produces instances of StreamSource.NonEmpty.

Utility type to determine if a graph has valued or unvalued links

A readonly array of fixed length and types.

Returns the indices/keys that are in a tuple.

A non-empty readonly array that can serve as a source for a Tuple.

A readonly array that can serve as a source for a Tuple.

A value of type T, or a function taking a value of type T and returning a new value of type T.