Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@rimbu/multimap

Package Overview
Dependencies
Maintainers
1
Versions
74
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rimbu/multimap - npm Package Compare versions

Comparing version 0.7.6 to 0.8.0

8

dist/main/implementation/base.js

@@ -90,3 +90,3 @@ "use strict";

MultiMapEmpty.prototype.toString = function () {
return this.context.typeTag + "()";
return "".concat(this.context.typeTag, "()");
};

@@ -282,3 +282,3 @@ MultiMapEmpty.prototype.toJSON = function () {

return this.keyMap.stream().join({
start: this.context.typeTag + "(",
start: "".concat(this.context.typeTag, "("),
sep: ', ',

@@ -288,5 +288,5 @@ end: ')',

var _b = (0, tslib_1.__read)(_a, 2), key = _b[0], values = _b[1];
return key + " -> " + values
return "".concat(key, " -> ").concat(values
.stream()
.join({ start: '[', sep: ', ', end: ']' });
.join({ start: '[', sep: ', ', end: ']' }));
},

@@ -293,0 +293,0 @@ });

@@ -7,3 +7,3 @@ import { CustomBase as CB, RMap, RSet } from '@rimbu/collection-types';

export interface ContextImplTypes extends MultiMapBase.Types {
context: MultiMapContext<this['_K'], this['_V'], string, this>;
readonly context: MultiMapContext<this['_K'], this['_V'], string>;
}

@@ -94,3 +94,3 @@ export declare class MultiMapEmpty<K, V, Tp extends ContextImplTypes> extends CB.EmptyBase implements MultiMapBase<K, V, Tp> {

}
export declare class MultiMapContext<UK, UV, N extends string, Tp extends ContextImplTypes> implements MultiMapBase.Context<UK, UV, Tp> {
export declare class MultiMapContext<UK, UV, N extends string, Tp extends ContextImplTypes = ContextImplTypes> implements MultiMapBase.Context<UK, UV, Tp> {
readonly typeTag: N;

@@ -97,0 +97,0 @@ readonly keyMapContext: (Tp & CB.KeyValue<UK, UV>)['keyMapContext'];

@@ -270,8 +270,8 @@ import type { CustomBase as CB, RMap, RSet, VariantMap, VariantSet } from '@rimbu/collection-types';

interface Types extends CB.KeyValue {
normal: VariantMultiMapBase<this['_K'], this['_V']>;
nonEmpty: VariantMultiMapBase.NonEmpty<this['_K'], this['_V']>;
keyMapValues: VariantSet<this['_V']>;
keyMapValuesNonEmpty: VariantSet.NonEmpty<this['_V']>;
keyMap: VariantMap<this['_K'], VariantSet.NonEmpty<this['_V']>>;
keyMapNonEmpty: VariantMap.NonEmpty<this['_K'], VariantSet.NonEmpty<this['_V']>>;
readonly normal: VariantMultiMapBase<this['_K'], this['_V']>;
readonly nonEmpty: VariantMultiMapBase.NonEmpty<this['_K'], this['_V']>;
readonly keyMapValues: VariantSet<this['_V']>;
readonly keyMapValuesNonEmpty: VariantSet.NonEmpty<this['_V']>;
readonly keyMap: VariantMap<this['_K'], VariantSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: VariantMap.NonEmpty<this['_K'], VariantSet.NonEmpty<this['_V']>>;
}

@@ -292,3 +292,3 @@ }

*/
add: (key: K, value: V) => CB.WithKeyValue<Tp, K, V>['nonEmpty'];
add(key: K, value: V): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
/**

@@ -301,6 +301,4 @@ * Returns the collection with the given `entries` added.

*/
addEntries: {
(entries: StreamSource.NonEmpty<readonly [K, V]>): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
(entries: StreamSource<readonly [K, V]>): CB.WithKeyValue<Tp, K, V>['normal'];
};
addEntries(entries: StreamSource.NonEmpty<readonly [K, V]>): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
addEntries(entries: StreamSource<readonly [K, V]>): CB.WithKeyValue<Tp, K, V>['normal'];
/**

@@ -314,6 +312,4 @@ * Returns the collection where given `key` has the given `values` associated with it.

*/
setValues: {
(key: K, values: StreamSource.NonEmpty<V>): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
(key: K, values: StreamSource<V>): CB.WithKeyValue<Tp, K, V>['normal'];
};
setValues(key: K, values: StreamSource.NonEmpty<V>): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
setValues(key: K, values: StreamSource<V>): CB.WithKeyValue<Tp, K, V>['normal'];
/**

@@ -351,3 +347,3 @@ * Returns the collection with the given `atKey` key modified according to given `options`.

*/
toBuilder: () => CB.WithKeyValue<Tp, K, V>['builder'];
toBuilder(): CB.WithKeyValue<Tp, K, V>['builder'];
}

@@ -369,3 +365,3 @@ export declare namespace MultiMapBase {

*/
addEntries: (entries: StreamSource<readonly [K, V]>) => CB.WithKeyValue<Tp, K, V>['nonEmpty'];
addEntries(entries: StreamSource<readonly [K, V]>): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
}

@@ -393,3 +389,3 @@ /**

*/
empty: <K extends UK, V extends UV>() => CB.WithKeyValue<Tp, K, V>['normal'];
empty<K extends UK, V extends UV>(): CB.WithKeyValue<Tp, K, V>['normal'];
/**

@@ -401,3 +397,3 @@ * Returns an immutable multimap of this collection type and context, containing the given `entries`.

*/
of: <K extends UK, V extends UV>(...entries: ArrayNonEmpty<readonly [K, V]>) => CB.WithKeyValue<Tp, K, V>['nonEmpty'];
of<K extends UK, V extends UV>(...entries: ArrayNonEmpty<readonly [K, V]>): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
/**

@@ -409,6 +405,4 @@ * Returns an immutable multimap of this type and context, containing the entries in the given `source` `StreamSource`.

*/
from: {
<K extends UK, V extends UV>(...sources: ArrayNonEmpty<StreamSource.NonEmpty<readonly [K, V]>>): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
<K extends UK, V extends UV>(...sources: ArrayNonEmpty<StreamSource<readonly [K, V]>>): CB.WithKeyValue<Tp, K, V>['normal'];
};
from<K extends UK, V extends UV>(...sources: ArrayNonEmpty<StreamSource.NonEmpty<readonly [K, V]>>): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
from<K extends UK, V extends UV>(...sources: ArrayNonEmpty<StreamSource<readonly [K, V]>>): CB.WithKeyValue<Tp, K, V>['normal'];
/**

@@ -419,3 +413,3 @@ * Returns an empty builder instance for this type of collection and context.

*/
builder: <K extends UK, V extends UV>() => CB.WithKeyValue<Tp, K, V>['builder'];
builder<K extends UK, V extends UV>(): CB.WithKeyValue<Tp, K, V>['builder'];
/**

@@ -431,3 +425,3 @@ * Returns a `Reducer` that adds received tuples to a MultiMap and returns the MultiMap as a result. When a `source` is given,

*/
reducer: <K extends UK, V extends UV>(source?: StreamSource<readonly [K, V]>) => Reducer<[K, V], CB.WithKeyValue<Tp, K, V>['normal']>;
reducer<K extends UK, V extends UV>(source?: StreamSource<readonly [K, V]>): Reducer<[K, V], CB.WithKeyValue<Tp, K, V>['normal']>;
}

@@ -467,3 +461,3 @@ interface Builder<K, V, Tp extends MultiMapBase.Types = MultiMapBase.Types> {

*/
setValues: (key: K, values: StreamSource<V>) => boolean;
setValues(key: K, values: StreamSource<V>): boolean;
/**

@@ -498,3 +492,3 @@ * Returns true if the given `key` is present in the builder.

*/
add: (key: K, value: V) => boolean;
add(key: K, value: V): boolean;
/**

@@ -508,3 +502,3 @@ * Adds given `entries` to the builder.

*/
addEntries: (entries: StreamSource<readonly [K, V]>) => boolean;
addEntries(entries: StreamSource<readonly [K, V]>): boolean;
/**

@@ -574,15 +568,15 @@ * Removes the given `value` from the values associated with given `key` from the builder.

interface Types extends VariantMultiMapBase.Types {
normal: MultiMapBase<this['_K'], this['_V']>;
nonEmpty: MultiMapBase.NonEmpty<this['_K'], this['_V']>;
context: MultiMapBase.Context<this['_K'], this['_V']>;
builder: MultiMapBase.Builder<this['_K'], this['_V']>;
limitKey: true;
limitValue: true;
keyMap: RMap<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapNonEmpty: RMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapContext: RMap.Context<this['_K']>;
keyMapValuesContext: RSet.Context<this['_V']>;
keyMapValues: RSet<this['_V']>;
keyMapValuesNonEmpty: RSet.NonEmpty<this['_V']>;
readonly normal: MultiMapBase<this['_K'], this['_V']>;
readonly nonEmpty: MultiMapBase.NonEmpty<this['_K'], this['_V']>;
readonly context: MultiMapBase.Context<this['_K'], this['_V']>;
readonly builder: MultiMapBase.Builder<this['_K'], this['_V']>;
readonly limitKey: true;
readonly limitValue: true;
readonly keyMap: RMap<this['_K'], RSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: RMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_V']>>;
readonly keyMapContext: RMap.Context<this['_K']>;
readonly keyMapValuesContext: RSet.Context<this['_V']>;
readonly keyMapValues: RSet<this['_V']>;
readonly keyMapValuesNonEmpty: RSet.NonEmpty<this['_V']>;
}
}

@@ -37,6 +37,6 @@ import type { RMap, RSet } from '@rimbu/collection-types';

interface Types extends MultiMapBase.Types {
normal: MultiMap<this['_K'], this['_V']>;
nonEmpty: MultiMap.NonEmpty<this['_K'], this['_V']>;
context: MultiMap.Context<this['_K'], this['_V']>;
builder: MultiMap.Builder<this['_K'], this['_V']>;
readonly normal: MultiMap<this['_K'], this['_V']>;
readonly nonEmpty: MultiMap.NonEmpty<this['_K'], this['_V']>;
readonly context: MultiMap.Context<this['_K'], this['_V']>;
readonly builder: MultiMap.Builder<this['_K'], this['_V']>;
}

@@ -43,0 +43,0 @@ }

@@ -29,5 +29,5 @@ import type { Streamable } from '@rimbu/stream';

interface Types extends VariantMultiMapBase.Types {
normal: VariantMultiMap<this['_K'], this['_V']>;
nonEmpty: VariantMultiMap.NonEmpty<this['_K'], this['_V']>;
readonly normal: VariantMultiMap<this['_K'], this['_V']>;
readonly nonEmpty: VariantMultiMap.NonEmpty<this['_K'], this['_V']>;
}
}

@@ -1,2 +0,1 @@

import type { RSet } from '@rimbu/collection-types';
import type { OmitStrong } from '@rimbu/common';

@@ -60,12 +59,12 @@ import { HashMap, HashSet } from '@rimbu/hashed';

interface Types extends MultiMapBase.Types {
normal: HashMultiMapHashValue<this['_K'], this['_V']>;
nonEmpty: HashMultiMapHashValue.NonEmpty<this['_K'], this['_V']>;
context: HashMultiMapHashValue.Context<this['_K'], this['_V']>;
builder: HashMultiMapHashValue.Builder<this['_K'], this['_V']>;
keyMap: HashMap<this['_K'], HashSet.NonEmpty<this['_V']>> & HashMap<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapNonEmpty: HashMap.NonEmpty<this['_K'], HashSet.NonEmpty<this['_V']>> & HashMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapContext: HashMap.Context<this['_K']>;
keyMapValuesContext: HashSet.Context<this['_V']>;
keyMapValues: HashSet<this['_V']>;
keyMapValuesNonEmpty: HashSet.NonEmpty<this['_V']>;
readonly normal: HashMultiMapHashValue<this['_K'], this['_V']>;
readonly nonEmpty: HashMultiMapHashValue.NonEmpty<this['_K'], this['_V']>;
readonly context: HashMultiMapHashValue.Context<this['_K'], this['_V']>;
readonly builder: HashMultiMapHashValue.Builder<this['_K'], this['_V']>;
readonly keyMap: HashMap<this['_K'], HashSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: HashMap.NonEmpty<this['_K'], HashSet.NonEmpty<this['_V']>>;
readonly keyMapContext: HashMap.Context<this['_K']>;
readonly keyMapValuesContext: HashSet.Context<this['_V']>;
readonly keyMapValues: HashSet<this['_V']>;
readonly keyMapValuesNonEmpty: HashSet.NonEmpty<this['_V']>;
}

@@ -72,0 +71,0 @@ }

@@ -1,2 +0,1 @@

import type { RSet } from '@rimbu/collection-types';
import type { OmitStrong } from '@rimbu/common';

@@ -61,12 +60,12 @@ import { HashMap } from '@rimbu/hashed';

interface Types extends MultiMapBase.Types {
normal: HashMultiMapSortedValue<this['_K'], this['_V']>;
nonEmpty: HashMultiMapSortedValue.NonEmpty<this['_K'], this['_V']>;
context: HashMultiMapSortedValue.Context<this['_K'], this['_V']>;
builder: HashMultiMapSortedValue.Builder<this['_K'], this['_V']>;
keyMap: HashMap<this['_K'], SortedSet.NonEmpty<this['_V']>> & HashMap<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapNonEmpty: HashMap.NonEmpty<this['_K'], SortedSet.NonEmpty<this['_V']>> & HashMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapContext: HashMap.Context<this['_K']>;
keyMapValuesContext: SortedSet.Context<this['_V']>;
keyMapValues: SortedSet<this['_V']>;
keyMapValuesNonEmpty: SortedSet.NonEmpty<this['_V']>;
readonly normal: HashMultiMapSortedValue<this['_K'], this['_V']>;
readonly nonEmpty: HashMultiMapSortedValue.NonEmpty<this['_K'], this['_V']>;
readonly context: HashMultiMapSortedValue.Context<this['_K'], this['_V']>;
readonly builder: HashMultiMapSortedValue.Builder<this['_K'], this['_V']>;
readonly keyMap: HashMap<this['_K'], SortedSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: HashMap.NonEmpty<this['_K'], SortedSet.NonEmpty<this['_V']>>;
readonly keyMapContext: HashMap.Context<this['_K']>;
readonly keyMapValuesContext: SortedSet.Context<this['_V']>;
readonly keyMapValues: SortedSet<this['_V']>;
readonly keyMapValuesNonEmpty: SortedSet.NonEmpty<this['_V']>;
}

@@ -73,0 +72,0 @@ }

@@ -1,2 +0,1 @@

import type { RSet } from '@rimbu/collection-types';
import type { OmitStrong } from '@rimbu/common';

@@ -62,12 +61,12 @@ import { HashSet } from '@rimbu/hashed';

interface Types extends MultiMapBase.Types {
normal: SortedMultiMapHashValue<this['_K'], this['_V']>;
nonEmpty: SortedMultiMapHashValue.NonEmpty<this['_K'], this['_V']>;
context: SortedMultiMapHashValue.Context<this['_K'], this['_V']>;
builder: SortedMultiMapHashValue.Builder<this['_K'], this['_V']>;
keyMap: SortedMap<this['_K'], HashSet.NonEmpty<this['_V']>> & SortedMap<this['_K'], RSet.NonEmpty<this['_K']>>;
keyMapNonEmpty: SortedMap.NonEmpty<this['_K'], HashSet.NonEmpty<this['_V']>> & SortedMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_K']>>;
keyMapContext: SortedMap.Context<this['_K']>;
keyMapValuesContext: HashSet.Context<this['_V']>;
keyMapValues: HashSet<this['_V']>;
keyMapValuesNonEmpty: HashSet.NonEmpty<this['_V']>;
readonly normal: SortedMultiMapHashValue<this['_K'], this['_V']>;
readonly nonEmpty: SortedMultiMapHashValue.NonEmpty<this['_K'], this['_V']>;
readonly context: SortedMultiMapHashValue.Context<this['_K'], this['_V']>;
readonly builder: SortedMultiMapHashValue.Builder<this['_K'], this['_V']>;
readonly keyMap: SortedMap<this['_K'], HashSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: SortedMap.NonEmpty<this['_K'], HashSet.NonEmpty<this['_V']>>;
readonly keyMapContext: SortedMap.Context<this['_K']>;
readonly keyMapValuesContext: HashSet.Context<this['_V']>;
readonly keyMapValues: HashSet<this['_V']>;
readonly keyMapValuesNonEmpty: HashSet.NonEmpty<this['_V']>;
}

@@ -74,0 +73,0 @@ }

@@ -1,2 +0,1 @@

import type { RSet } from '@rimbu/collection-types';
import type { OmitStrong } from '@rimbu/common';

@@ -60,12 +59,12 @@ import { SortedMap, SortedSet } from '@rimbu/sorted';

interface Types extends MultiMapBase.Types {
normal: SortedMultiMapSortedValue<this['_K'], this['_V']>;
nonEmpty: SortedMultiMapSortedValue.NonEmpty<this['_K'], this['_V']>;
context: SortedMultiMapSortedValue.Context<this['_K'], this['_V']>;
builder: SortedMultiMapSortedValue.Builder<this['_K'], this['_V']>;
keyMap: SortedMap<this['_K'], SortedSet.NonEmpty<this['_V']>> & SortedMap<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapNonEmpty: SortedMap.NonEmpty<this['_K'], SortedSet.NonEmpty<this['_V']>> & SortedMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapContext: SortedMap.Context<this['_K']>;
keyMapValuesContext: SortedSet.Context<this['_V']>;
keyMapValues: SortedSet<this['_V']>;
keyMapValuesNonEmpty: SortedSet.NonEmpty<this['_V']>;
readonly normal: SortedMultiMapSortedValue<this['_K'], this['_V']>;
readonly nonEmpty: SortedMultiMapSortedValue.NonEmpty<this['_K'], this['_V']>;
readonly context: SortedMultiMapSortedValue.Context<this['_K'], this['_V']>;
readonly builder: SortedMultiMapSortedValue.Builder<this['_K'], this['_V']>;
readonly keyMap: SortedMap<this['_K'], SortedSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: SortedMap.NonEmpty<this['_K'], SortedSet.NonEmpty<this['_V']>>;
readonly keyMapContext: SortedMap.Context<this['_K']>;
readonly keyMapValuesContext: SortedSet.Context<this['_V']>;
readonly keyMapValues: SortedSet<this['_V']>;
readonly keyMapValuesNonEmpty: SortedSet.NonEmpty<this['_V']>;
}

@@ -72,0 +71,0 @@ }

{
"name": "@rimbu/multimap",
"version": "0.7.6",
"version": "0.8.0",
"description": "An immutable Map where each key can have multiple values",

@@ -62,8 +62,8 @@ "keywords": [

"dependencies": {
"@rimbu/base": "^0.6.7",
"@rimbu/collection-types": "^0.7.5",
"@rimbu/common": "^0.7.5",
"@rimbu/hashed": "^0.6.8",
"@rimbu/sorted": "^0.7.2",
"@rimbu/stream": "^0.7.5",
"@rimbu/base": "^0.7.0",
"@rimbu/collection-types": "^0.8.0",
"@rimbu/common": "^0.8.0",
"@rimbu/hashed": "^0.7.0",
"@rimbu/sorted": "^0.8.0",
"@rimbu/stream": "^0.8.0",
"tslib": "^2.3.1"

@@ -77,3 +77,3 @@ },

},
"gitHead": "20739fd0c0d5c565eeecd3e266dd51f893e8d67c"
"gitHead": "c321aa32b1c5fd8ca8b7fb1c26bd4f7bbf3ef70d"
}

@@ -20,3 +20,3 @@ <p align="center">

For complete documentation please visit the [MultiMap page](https://rimbu.org/docs/collections/multimap) _[Rimbu Docs](https://rimbu.org)_.
For complete documentation please visit the [MultiMap page](https://rimbu.org/docs/collections/multimap) in the _[Rimbu Docs](https://rimbu.org)_.

@@ -65,15 +65,2 @@ Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox.

## Recommended `tsconfig.json` settings
Rimbu uses advanced and recursive typing, potentially making the TypeScript compiler quite slow in some cases, or causing infinite recursion. It is recommended to set the following values in the `tsconfig.json` file of your project:
```json
{
"compilerOptions": {
"skipLibCheck": true,
"noStrictGenericChecks": true
}
}
```
## Usage

@@ -80,0 +67,0 @@

@@ -16,3 +16,3 @@ import { RimbuError } from '@rimbu/base';

export interface ContextImplTypes extends MultiMapBase.Types {
context: MultiMapContext<this['_K'], this['_V'], string, this>;
readonly context: MultiMapContext<this['_K'], this['_V'], string>;
}

@@ -614,3 +614,3 @@

N extends string,
Tp extends ContextImplTypes
Tp extends ContextImplTypes = ContextImplTypes
> implements MultiMapBase.Context<UK, UV, Tp>

@@ -625,7 +625,5 @@ {

readonly _empty = new MultiMapEmpty<UK, UV, Tp>(this) as CB.WithKeyValue<
Tp,
UK,
UV
>['normal'];
readonly _empty = new MultiMapEmpty<UK, UV, Tp>(
this as any
) as CB.WithKeyValue<Tp, UK, UV>['normal'];

@@ -643,3 +641,3 @@ isNonEmptyInstance<K, V>(

return new MultiMapNonEmpty<K, V, Tp>(
this,
this as any,
keyMap,

@@ -699,3 +697,3 @@ size

>['builder'] => {
return new MultiMapBuilder<K, V, Tp>(this) as CB.WithKeyValue<
return new MultiMapBuilder<K, V, Tp>(this as any) as CB.WithKeyValue<
Tp,

@@ -728,8 +726,7 @@ K,

): CB.WithKeyValue<Tp, K, V>['builder'] {
return new MultiMapBuilder<K, V, Tp>(this, source) as CB.WithKeyValue<
Tp,
K,
V
>['builder'];
return new MultiMapBuilder<K, V, Tp>(
this as any,
source
) as CB.WithKeyValue<Tp, K, V>['builder'];
}
}

@@ -318,8 +318,8 @@ import type {

export interface Types extends CB.KeyValue {
normal: VariantMultiMapBase<this['_K'], this['_V']>;
nonEmpty: VariantMultiMapBase.NonEmpty<this['_K'], this['_V']>;
keyMapValues: VariantSet<this['_V']>;
keyMapValuesNonEmpty: VariantSet.NonEmpty<this['_V']>;
keyMap: VariantMap<this['_K'], VariantSet.NonEmpty<this['_V']>>;
keyMapNonEmpty: VariantMap.NonEmpty<
readonly normal: VariantMultiMapBase<this['_K'], this['_V']>;
readonly nonEmpty: VariantMultiMapBase.NonEmpty<this['_K'], this['_V']>;
readonly keyMapValues: VariantSet<this['_V']>;
readonly keyMapValuesNonEmpty: VariantSet.NonEmpty<this['_V']>;
readonly keyMap: VariantMap<this['_K'], VariantSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: VariantMap.NonEmpty<
this['_K'],

@@ -348,3 +348,3 @@ VariantSet.NonEmpty<this['_V']>

*/
add: (key: K, value: V) => CB.WithKeyValue<Tp, K, V>['nonEmpty'];
add(key: K, value: V): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
/**

@@ -357,14 +357,8 @@ * Returns the collection with the given `entries` added.

*/
addEntries: {
(entries: StreamSource.NonEmpty<readonly [K, V]>): CB.WithKeyValue<
Tp,
K,
V
>['nonEmpty'];
(entries: StreamSource<readonly [K, V]>): CB.WithKeyValue<
Tp,
K,
V
>['normal'];
};
addEntries(
entries: StreamSource.NonEmpty<readonly [K, V]>
): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
addEntries(
entries: StreamSource<readonly [K, V]>
): CB.WithKeyValue<Tp, K, V>['normal'];
/**

@@ -378,10 +372,10 @@ * Returns the collection where given `key` has the given `values` associated with it.

*/
setValues: {
(key: K, values: StreamSource.NonEmpty<V>): CB.WithKeyValue<
Tp,
K,
V
>['nonEmpty'];
(key: K, values: StreamSource<V>): CB.WithKeyValue<Tp, K, V>['normal'];
};
setValues(
key: K,
values: StreamSource.NonEmpty<V>
): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
setValues(
key: K,
values: StreamSource<V>
): CB.WithKeyValue<Tp, K, V>['normal'];
/**

@@ -424,3 +418,3 @@ * Returns the collection with the given `atKey` key modified according to given `options`.

*/
toBuilder: () => CB.WithKeyValue<Tp, K, V>['builder'];
toBuilder(): CB.WithKeyValue<Tp, K, V>['builder'];
}

@@ -452,5 +446,5 @@

*/
addEntries: (
addEntries(
entries: StreamSource<readonly [K, V]>
) => CB.WithKeyValue<Tp, K, V>['nonEmpty'];
): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
}

@@ -488,7 +482,3 @@

*/
empty: <K extends UK, V extends UV>() => CB.WithKeyValue<
Tp,
K,
V
>['normal'];
empty<K extends UK, V extends UV>(): CB.WithKeyValue<Tp, K, V>['normal'];
/**

@@ -500,5 +490,5 @@ * Returns an immutable multimap of this collection type and context, containing the given `entries`.

*/
of: <K extends UK, V extends UV>(
of<K extends UK, V extends UV>(
...entries: ArrayNonEmpty<readonly [K, V]>
) => CB.WithKeyValue<Tp, K, V>['nonEmpty'];
): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
/**

@@ -510,10 +500,8 @@ * Returns an immutable multimap of this type and context, containing the entries in the given `source` `StreamSource`.

*/
from: {
<K extends UK, V extends UV>(
...sources: ArrayNonEmpty<StreamSource.NonEmpty<readonly [K, V]>>
): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
<K extends UK, V extends UV>(
...sources: ArrayNonEmpty<StreamSource<readonly [K, V]>>
): CB.WithKeyValue<Tp, K, V>['normal'];
};
from<K extends UK, V extends UV>(
...sources: ArrayNonEmpty<StreamSource.NonEmpty<readonly [K, V]>>
): CB.WithKeyValue<Tp, K, V>['nonEmpty'];
from<K extends UK, V extends UV>(
...sources: ArrayNonEmpty<StreamSource<readonly [K, V]>>
): CB.WithKeyValue<Tp, K, V>['normal'];
/**

@@ -524,7 +512,3 @@ * Returns an empty builder instance for this type of collection and context.

*/
builder: <K extends UK, V extends UV>() => CB.WithKeyValue<
Tp,
K,
V
>['builder'];
builder<K extends UK, V extends UV>(): CB.WithKeyValue<Tp, K, V>['builder'];
/**

@@ -540,5 +524,5 @@ * Returns a `Reducer` that adds received tuples to a MultiMap and returns the MultiMap as a result. When a `source` is given,

*/
reducer: <K extends UK, V extends UV>(
reducer<K extends UK, V extends UV>(
source?: StreamSource<readonly [K, V]>
) => Reducer<[K, V], CB.WithKeyValue<Tp, K, V>['normal']>;
): Reducer<[K, V], CB.WithKeyValue<Tp, K, V>['normal']>;
}

@@ -585,3 +569,3 @@

*/
setValues: (key: K, values: StreamSource<V>) => boolean;
setValues(key: K, values: StreamSource<V>): boolean;
/**

@@ -616,3 +600,3 @@ * Returns true if the given `key` is present in the builder.

*/
add: (key: K, value: V) => boolean;
add(key: K, value: V): boolean;
/**

@@ -626,3 +610,3 @@ * Adds given `entries` to the builder.

*/
addEntries: (entries: StreamSource<readonly [K, V]>) => boolean;
addEntries(entries: StreamSource<readonly [K, V]>): boolean;
/**

@@ -701,15 +685,18 @@ * Removes the given `value` from the values associated with given `key` from the builder.

export interface Types extends VariantMultiMapBase.Types {
normal: MultiMapBase<this['_K'], this['_V']>;
nonEmpty: MultiMapBase.NonEmpty<this['_K'], this['_V']>;
context: MultiMapBase.Context<this['_K'], this['_V']>;
builder: MultiMapBase.Builder<this['_K'], this['_V']>;
limitKey: true;
limitValue: true;
keyMap: RMap<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapNonEmpty: RMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapContext: RMap.Context<this['_K']>;
keyMapValuesContext: RSet.Context<this['_V']>;
keyMapValues: RSet<this['_V']>;
keyMapValuesNonEmpty: RSet.NonEmpty<this['_V']>;
readonly normal: MultiMapBase<this['_K'], this['_V']>;
readonly nonEmpty: MultiMapBase.NonEmpty<this['_K'], this['_V']>;
readonly context: MultiMapBase.Context<this['_K'], this['_V']>;
readonly builder: MultiMapBase.Builder<this['_K'], this['_V']>;
readonly limitKey: true;
readonly limitValue: true;
readonly keyMap: RMap<this['_K'], RSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: RMap.NonEmpty<
this['_K'],
RSet.NonEmpty<this['_V']>
>;
readonly keyMapContext: RMap.Context<this['_K']>;
readonly keyMapValuesContext: RSet.Context<this['_V']>;
readonly keyMapValues: RSet<this['_V']>;
readonly keyMapValuesNonEmpty: RSet.NonEmpty<this['_V']>;
}
}

@@ -42,15 +42,9 @@ import type { RMap, RSet } from '@rimbu/collection-types';

export interface Types extends MultiMapBase.Types {
normal: MultiMap<this['_K'], this['_V']>;
nonEmpty: MultiMap.NonEmpty<this['_K'], this['_V']>;
// keyMap: RMap<this['_K'], this['keyMapValuesNonEmpty']>;
// keyMapNonEmpty: RMap.NonEmpty<this['_K'], this['keyMapValuesNonEmpty']>;
context: MultiMap.Context<this['_K'], this['_V']>;
builder: MultiMap.Builder<this['_K'], this['_V']>;
readonly normal: MultiMap<this['_K'], this['_V']>;
readonly nonEmpty: MultiMap.NonEmpty<this['_K'], this['_V']>;
readonly context: MultiMap.Context<this['_K'], this['_V']>;
readonly builder: MultiMap.Builder<this['_K'], this['_V']>;
}
}
interface TypesImpl extends MultiMap.Types {
context: MultiMapContext<this['_K'], this['_V'], string, any>;
}
export const MultiMap = {

@@ -69,3 +63,3 @@ /**

}): MultiMap.Context<UK, UV> {
return new MultiMapContext<UK, UV, 'MultiMap', TypesImpl>(
return new MultiMapContext<UK, UV, 'MultiMap', any>(
'MultiMap',

@@ -72,0 +66,0 @@ options.keyMapContext,

@@ -33,5 +33,5 @@ import type { Streamable } from '@rimbu/stream';

export interface Types extends VariantMultiMapBase.Types {
normal: VariantMultiMap<this['_K'], this['_V']>;
nonEmpty: VariantMultiMap.NonEmpty<this['_K'], this['_V']>;
readonly normal: VariantMultiMap<this['_K'], this['_V']>;
readonly nonEmpty: VariantMultiMap.NonEmpty<this['_K'], this['_V']>;
}
}

@@ -1,2 +0,1 @@

import type { RSet } from '@rimbu/collection-types';
import type { OmitStrong } from '@rimbu/common';

@@ -73,26 +72,18 @@ import { HashMap, HashSet } from '@rimbu/hashed';

export interface Types extends MultiMapBase.Types {
normal: HashMultiMapHashValue<this['_K'], this['_V']>;
nonEmpty: HashMultiMapHashValue.NonEmpty<this['_K'], this['_V']>;
context: HashMultiMapHashValue.Context<this['_K'], this['_V']>;
builder: HashMultiMapHashValue.Builder<this['_K'], this['_V']>;
keyMap: HashMap<this['_K'], HashSet.NonEmpty<this['_V']>> &
HashMap<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapNonEmpty: HashMap.NonEmpty<this['_K'], HashSet.NonEmpty<this['_V']>> &
HashMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapContext: HashMap.Context<this['_K']>;
keyMapValuesContext: HashSet.Context<this['_V']>;
keyMapValues: HashSet<this['_V']>;
keyMapValuesNonEmpty: HashSet.NonEmpty<this['_V']>;
readonly normal: HashMultiMapHashValue<this['_K'], this['_V']>;
readonly nonEmpty: HashMultiMapHashValue.NonEmpty<this['_K'], this['_V']>;
readonly context: HashMultiMapHashValue.Context<this['_K'], this['_V']>;
readonly builder: HashMultiMapHashValue.Builder<this['_K'], this['_V']>;
readonly keyMap: HashMap<this['_K'], HashSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: HashMap.NonEmpty<
this['_K'],
HashSet.NonEmpty<this['_V']>
>;
readonly keyMapContext: HashMap.Context<this['_K']>;
readonly keyMapValuesContext: HashSet.Context<this['_V']>;
readonly keyMapValues: HashSet<this['_V']>;
readonly keyMapValuesNonEmpty: HashSet.NonEmpty<this['_V']>;
}
}
interface TypesImpl extends HashMultiMapHashValue.Types {
context: MultiMapContext<
this['_K'],
this['_V'],
'HashMultiMapHashValue',
any
>;
}
function createContext<UK, UV>(options?: {

@@ -102,3 +93,3 @@ keyMapContext?: HashMap.Context<UK>;

}): HashMultiMapHashValue.Context<UK, UV> {
return new MultiMapContext<UK, UV, 'HashMultiMapHashValue', TypesImpl>(
return new MultiMapContext<UK, UV, 'HashMultiMapHashValue', any>(
'HashMultiMapHashValue',

@@ -105,0 +96,0 @@ options?.keyMapContext ?? HashMap.defaultContext(),

@@ -1,2 +0,1 @@

import type { RSet } from '@rimbu/collection-types';
import type { OmitStrong } from '@rimbu/common';

@@ -74,29 +73,18 @@ import { HashMap } from '@rimbu/hashed';

export interface Types extends MultiMapBase.Types {
normal: HashMultiMapSortedValue<this['_K'], this['_V']>;
nonEmpty: HashMultiMapSortedValue.NonEmpty<this['_K'], this['_V']>;
context: HashMultiMapSortedValue.Context<this['_K'], this['_V']>;
builder: HashMultiMapSortedValue.Builder<this['_K'], this['_V']>;
keyMap: HashMap<this['_K'], SortedSet.NonEmpty<this['_V']>> &
HashMap<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapNonEmpty: HashMap.NonEmpty<
readonly normal: HashMultiMapSortedValue<this['_K'], this['_V']>;
readonly nonEmpty: HashMultiMapSortedValue.NonEmpty<this['_K'], this['_V']>;
readonly context: HashMultiMapSortedValue.Context<this['_K'], this['_V']>;
readonly builder: HashMultiMapSortedValue.Builder<this['_K'], this['_V']>;
readonly keyMap: HashMap<this['_K'], SortedSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: HashMap.NonEmpty<
this['_K'],
SortedSet.NonEmpty<this['_V']>
> &
HashMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapContext: HashMap.Context<this['_K']>;
keyMapValuesContext: SortedSet.Context<this['_V']>;
keyMapValues: SortedSet<this['_V']>;
keyMapValuesNonEmpty: SortedSet.NonEmpty<this['_V']>;
>;
readonly keyMapContext: HashMap.Context<this['_K']>;
readonly keyMapValuesContext: SortedSet.Context<this['_V']>;
readonly keyMapValues: SortedSet<this['_V']>;
readonly keyMapValuesNonEmpty: SortedSet.NonEmpty<this['_V']>;
}
}
interface TypesImpl extends HashMultiMapSortedValue.Types {
context: MultiMapContext<
this['_K'],
this['_V'],
'HashMultiMapSortedValue',
any
>;
}
function createContext<K, V>(options?: {

@@ -106,3 +94,3 @@ keyMapContext?: HashMap.Context<K>;

}): HashMultiMapSortedValue.Context<K, V> {
return new MultiMapContext<K, V, 'HashMultiMapSortedValue', TypesImpl>(
return new MultiMapContext<K, V, 'HashMultiMapSortedValue', any>(
'HashMultiMapSortedValue',

@@ -109,0 +97,0 @@ options?.keyMapContext ?? HashMap.defaultContext(),

@@ -1,2 +0,1 @@

import type { RSet } from '@rimbu/collection-types';
import type { OmitStrong } from '@rimbu/common';

@@ -74,29 +73,18 @@ import { HashSet } from '@rimbu/hashed';

export interface Types extends MultiMapBase.Types {
normal: SortedMultiMapHashValue<this['_K'], this['_V']>;
nonEmpty: SortedMultiMapHashValue.NonEmpty<this['_K'], this['_V']>;
context: SortedMultiMapHashValue.Context<this['_K'], this['_V']>;
builder: SortedMultiMapHashValue.Builder<this['_K'], this['_V']>;
keyMap: SortedMap<this['_K'], HashSet.NonEmpty<this['_V']>> &
SortedMap<this['_K'], RSet.NonEmpty<this['_K']>>;
keyMapNonEmpty: SortedMap.NonEmpty<
readonly normal: SortedMultiMapHashValue<this['_K'], this['_V']>;
readonly nonEmpty: SortedMultiMapHashValue.NonEmpty<this['_K'], this['_V']>;
readonly context: SortedMultiMapHashValue.Context<this['_K'], this['_V']>;
readonly builder: SortedMultiMapHashValue.Builder<this['_K'], this['_V']>;
readonly keyMap: SortedMap<this['_K'], HashSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: SortedMap.NonEmpty<
this['_K'],
HashSet.NonEmpty<this['_V']>
> &
SortedMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_K']>>;
keyMapContext: SortedMap.Context<this['_K']>;
keyMapValuesContext: HashSet.Context<this['_V']>;
keyMapValues: HashSet<this['_V']>;
keyMapValuesNonEmpty: HashSet.NonEmpty<this['_V']>;
>;
readonly keyMapContext: SortedMap.Context<this['_K']>;
readonly keyMapValuesContext: HashSet.Context<this['_V']>;
readonly keyMapValues: HashSet<this['_V']>;
readonly keyMapValuesNonEmpty: HashSet.NonEmpty<this['_V']>;
}
}
interface TypesImpl extends SortedMultiMapHashValue.Types {
context: MultiMapContext<
this['_K'],
this['_V'],
'SortedMultiMapHashValue',
any
>;
}
function createContext<K, V>(options?: {

@@ -106,3 +94,3 @@ keyMapContext?: SortedMap.Context<K>;

}): SortedMultiMapHashValue.Context<K, V> {
return new MultiMapContext<K, V, 'SortedMultiMapHashValue', TypesImpl>(
return new MultiMapContext<K, V, 'SortedMultiMapHashValue', any>(
'SortedMultiMapHashValue',

@@ -109,0 +97,0 @@ options?.keyMapContext ?? SortedMap.defaultContext(),

@@ -1,2 +0,1 @@

import type { RSet } from '@rimbu/collection-types';
import type { OmitStrong } from '@rimbu/common';

@@ -73,29 +72,21 @@ import { SortedMap, SortedSet } from '@rimbu/sorted';

export interface Types extends MultiMapBase.Types {
normal: SortedMultiMapSortedValue<this['_K'], this['_V']>;
nonEmpty: SortedMultiMapSortedValue.NonEmpty<this['_K'], this['_V']>;
context: SortedMultiMapSortedValue.Context<this['_K'], this['_V']>;
builder: SortedMultiMapSortedValue.Builder<this['_K'], this['_V']>;
keyMap: SortedMap<this['_K'], SortedSet.NonEmpty<this['_V']>> &
SortedMap<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapNonEmpty: SortedMap.NonEmpty<
readonly normal: SortedMultiMapSortedValue<this['_K'], this['_V']>;
readonly nonEmpty: SortedMultiMapSortedValue.NonEmpty<
this['_K'],
this['_V']
>;
readonly context: SortedMultiMapSortedValue.Context<this['_K'], this['_V']>;
readonly builder: SortedMultiMapSortedValue.Builder<this['_K'], this['_V']>;
readonly keyMap: SortedMap<this['_K'], SortedSet.NonEmpty<this['_V']>>;
readonly keyMapNonEmpty: SortedMap.NonEmpty<
this['_K'],
SortedSet.NonEmpty<this['_V']>
> &
SortedMap.NonEmpty<this['_K'], RSet.NonEmpty<this['_V']>>;
keyMapContext: SortedMap.Context<this['_K']>;
keyMapValuesContext: SortedSet.Context<this['_V']>;
keyMapValues: SortedSet<this['_V']>;
keyMapValuesNonEmpty: SortedSet.NonEmpty<this['_V']>;
>;
readonly keyMapContext: SortedMap.Context<this['_K']>;
readonly keyMapValuesContext: SortedSet.Context<this['_V']>;
readonly keyMapValues: SortedSet<this['_V']>;
readonly keyMapValuesNonEmpty: SortedSet.NonEmpty<this['_V']>;
}
}
interface TypesImpl extends SortedMultiMapSortedValue.Types {
context: MultiMapContext<
this['_K'],
this['_V'],
'SortedMultiMapSortedValue',
any
>;
}
function createContext<K, V>(options?: {

@@ -105,3 +96,3 @@ keyMapContext?: SortedMap.Context<K>;

}): SortedMultiMapSortedValue.Context<K, V> {
return new MultiMapContext<K, V, 'SortedMultiMapSortedValue', TypesImpl>(
return new MultiMapContext<K, V, 'SortedMultiMapSortedValue', any>(
'SortedMultiMapSortedValue',

@@ -108,0 +99,0 @@ options?.keyMapContext ?? SortedMap.defaultContext(),

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc