diff --git a/src/lib/key-set.ts b/src/lib/key-set.ts index 06ffc1b..8c02054 100644 --- a/src/lib/key-set.ts +++ b/src/lib/key-set.ts @@ -7,6 +7,11 @@ import { isValidKey, Key, KeyLabelSet, + KeyLabelSetAllExceptSomeSerialized, + KeyLabelSetAllSerialized, + KeyLabelSetNoneSerialized, + KeyLabelSetSerialized, + KeyLabelSetSomeSerialized, KeySet, KeySetAllExceptSomeSerialized, KeySetAllSerialized, @@ -68,6 +73,11 @@ export { KeySetAllSerialized, KeySetNoneSerialized, KeySetSomeSerialized, + KeyLabelSetAllSerialized, + KeyLabelSetNoneSerialized, + KeyLabelSetSomeSerialized, + KeyLabelSetAllExceptSomeSerialized, + KeyLabelSetSerialized, IKeyLabel, InvalidKeySetError, InvalidEmptySetError, diff --git a/src/lib/key-set/-base.ts b/src/lib/key-set/-base.ts index b692d59..cc62653 100644 --- a/src/lib/key-set/-base.ts +++ b/src/lib/key-set/-base.ts @@ -65,6 +65,31 @@ export type KeySetSerialized = | KeySetSomeSerialized | KeySetAllExceptSomeSerialized; +export type KeyLabelSetAllSerialized = + | { type: KeySetTypes.all } + | { type: KeySetTypes.all; elements: EmptyArray }; + +export type KeyLabelSetNoneSerialized = + | { type: KeySetTypes.none } + | { type: KeySetTypes.none; elements: EmptyArray }; + +export type KeyLabelSetSomeSerialized = { + type: KeySetTypes.some; + elements: NonEmptyArray>; +}; + +export type KeyLabelSetAllExceptSomeSerialized = { + type: KeySetTypes.allExceptSome; + elements: NonEmptyArray>; +}; + +export type KeyLabelSetSerialized = + | { type: KeySetTypes } + | KeyLabelSetAllSerialized + | KeyLabelSetNoneSerialized + | KeyLabelSetSomeSerialized + | KeyLabelSetAllExceptSomeSerialized; + export interface IKeySetClass { /** * returns the KeySetType that defines this class