@sladg/apex-state 3.6.3 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -204,6 +204,12 @@ type PathValuePair<STATE, Depth extends number> = DeepKey<STATE, Depth> extends
204
204
  * Same distribution as PathValuePair but with array values.
205
205
  */
206
206
  type PathValueArrayPair<STATE, Depth extends number> = DeepKey<STATE, Depth> extends infer P ? P extends string ? [P, DeepValue<STATE, P>[]] : never : never;
207
+ /**
208
+ * Array-elements pair for CONTAINS_ANY / CONTAINS_ALL operators.
209
+ * Same distribution as PathArrayElementPair but the second element is an array
210
+ * of items, enabling multi-value containment checks.
211
+ */
212
+ type PathArrayElementsPair<STATE, Depth extends number> = DeepKey<STATE, Depth> extends infer P ? P extends string ? NonNullable<DeepValue<STATE, P>> extends readonly (infer Item)[] ? [P, Item[]] : never : never : never;
207
213
  /**
208
214
  * Paths that resolve to number, plus `.length` on array-valued paths.
209
215
  * Allows GT/LT/GTE/LTE to compare against array lengths without
@@ -223,6 +229,8 @@ type NumericPaths<STATE, Depth extends number> = DeepKeyFiltered<STATE, number,
223
229
  * - AND/OR/NOT: Boolean combinators
224
230
  * - GT/LT/GTE/LTE: Numeric comparisons (only on number paths or array.length)
225
231
  * - IN: Check if path value is in allowed list (values must match path type)
232
+ * - CONTAINS_ANY: Check if array at path contains any of the given elements
233
+ * - CONTAINS_ALL: Check if array at path contains all of the given elements
226
234
  * - Shorthand: [path, value] tuple as shorthand for IS_EQUAL
227
235
  *
228
236
  * @example
@@ -271,6 +279,10 @@ type BoolLogic<STATE, Depth extends number = DefaultDepth> = {
271
279
  LTE: [NumericPaths<STATE, Depth>, number];
272
280
  } | {
273
281
  IN: PathValueArrayPair<STATE, Depth>;
282
+ } | {
283
+ CONTAINS_ANY: PathArrayElementsPair<STATE, Depth>;
284
+ } | {
285
+ CONTAINS_ALL: PathArrayElementsPair<STATE, Depth>;
274
286
  } | PathValuePair<STATE, Depth>;
275
287
 
276
288
  /**
@@ -1702,6 +1714,7 @@ declare const hashKey: {
1702
1714
  *
1703
1715
  * Provides type-safe predicates for common type checks with TypeScript support
1704
1716
  */
1717
+
1705
1718
  /**
1706
1719
  * Unified namespace for type checking
1707
1720
  *
@@ -1723,6 +1736,7 @@ declare const is: {
1723
1736
  undefined: (value: unknown) => value is undefined;
1724
1737
  null: (value: unknown) => value is null;
1725
1738
  object: (value: unknown) => value is Record<string, unknown>;
1739
+ objectOrArray: (value: unknown) => value is Record<string, unknown> | unknown[];
1726
1740
  array: (value: unknown) => value is unknown[];
1727
1741
  string: (value: unknown) => value is string;
1728
1742
  number: (value: unknown) => value is number;
@@ -1731,23 +1745,25 @@ declare const is: {
1731
1745
  symbol: (value: unknown) => value is symbol;
1732
1746
  date: (value: unknown) => value is Date;
1733
1747
  regexp: (value: unknown) => value is RegExp;
1734
- primitive: (value: unknown) => value is string | number | boolean | symbol | bigint | null | undefined;
1748
+ numericKey: (value: string) => boolean;
1749
+ primitive: (value: unknown) => value is Primitive;
1735
1750
  empty: (value: unknown) => boolean;
1736
1751
  equal: (a: unknown, b: unknown) => boolean;
1737
1752
  not: {
1738
1753
  nil: <T>(value: T | null | undefined) => value is T;
1739
1754
  undefined: <T>(value: T | undefined) => value is T;
1740
1755
  null: <T>(value: T | null) => value is T;
1741
- object: (value: unknown) => boolean;
1742
- array: (value: unknown) => boolean;
1743
- string: (value: unknown) => boolean;
1744
- number: (value: unknown) => boolean;
1745
- boolean: (value: unknown) => boolean;
1746
- function: (value: unknown) => boolean;
1747
- symbol: (value: unknown) => boolean;
1748
- date: (value: unknown) => boolean;
1749
- regexp: (value: unknown) => boolean;
1750
- primitive: (value: unknown) => boolean;
1756
+ object: <T>(value: T) => value is Exclude<T, Record<string, unknown>>;
1757
+ objectOrArray: <T>(value: T) => value is Exclude<T, Record<string, unknown> | unknown[]>;
1758
+ array: <T>(value: T) => value is Exclude<T, unknown[]>;
1759
+ string: <T>(value: T) => value is Exclude<T, string>;
1760
+ number: <T>(value: T) => value is Exclude<T, number>;
1761
+ boolean: <T>(value: T) => value is Exclude<T, boolean>;
1762
+ function: <T>(value: T) => value is Exclude<T, (...args: unknown[]) => unknown>;
1763
+ symbol: <T>(value: T) => value is Exclude<T, symbol>;
1764
+ date: <T>(value: T) => value is Exclude<T, Date>;
1765
+ regexp: <T>(value: T) => value is Exclude<T, RegExp>;
1766
+ primitive: <T>(value: T) => value is Exclude<T, Primitive>;
1751
1767
  empty: (value: unknown) => boolean;
1752
1768
  equal: (a: unknown, b: unknown) => boolean;
1753
1769
  };