@mmstack/primitives 21.0.15 → 21.0.17

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mmstack/primitives",
3
- "version": "21.0.15",
3
+ "version": "21.0.17",
4
4
  "keywords": [
5
5
  "angular",
6
6
  "signals",
@@ -1331,32 +1331,61 @@ type Sensors<TKey extends keyof SensorTypedOptions> = {
1331
1331
  };
1332
1332
  declare function sensors<const TType extends keyof SensorTypedOptions>(track: TType[], opt?: SensorsOptions<TType>): Sensors<TType>;
1333
1333
 
1334
- type BaseType = string | number | boolean | symbol | undefined | null | Function | Date | RegExp | any[];
1334
+ type BaseType = string | number | boolean | symbol | undefined | null | Function | Date | RegExp;
1335
1335
  type Key = string | number;
1336
1336
  type AnyRecord = Record<Key, any>;
1337
-
1338
- type SignalStore<T> = Signal<T> & (NonNullable<T> extends BaseType ? unknown : Readonly<{
1337
+ /**
1338
+ * @internal
1339
+ * Validates whether a value is a Signal Store.
1340
+ */
1341
+ declare function isStore<T>(value: unknown): value is SignalStore<T>;
1342
+ type SignalArrayStore<T extends any[]> = Signal<T> & {
1343
+ readonly [index: number]: SignalStore<T[number]>;
1344
+ readonly length: Signal<number>;
1345
+ [Symbol.iterator](): Iterator<SignalStore<T[number]>>;
1346
+ };
1347
+ type WritableArrayStore<T extends any[]> = WritableSignal<T> & {
1348
+ readonly asReadonlyStore: () => SignalArrayStore<T>;
1349
+ readonly [index: number]: WritableSignalStore<T[number]>;
1350
+ readonly length: Signal<number>;
1351
+ [Symbol.iterator](): Iterator<WritableSignalStore<T[number]>>;
1352
+ };
1353
+ type MutableArrayStore<T extends any[]> = MutableSignal<T> & {
1354
+ readonly asReadonlyStore: () => SignalArrayStore<T>;
1355
+ readonly [index: number]: MutableSignalStore<T[number]>;
1356
+ readonly length: Signal<number>;
1357
+ [Symbol.iterator](): Iterator<MutableSignalStore<T[number]>>;
1358
+ };
1359
+ type SignalStore<T> = Signal<T> & (NonNullable<T> extends BaseType ? unknown : NonNullable<T> extends Array<any> ? SignalArrayStore<NonNullable<T>> : Readonly<{
1339
1360
  [K in keyof Required<T>]: SignalStore<NonNullable<T>[K]>;
1340
1361
  }>);
1341
1362
  type WritableSignalStore<T> = WritableSignal<T> & {
1342
1363
  readonly asReadonlyStore: () => SignalStore<T>;
1343
- } & (NonNullable<T> extends BaseType ? unknown : Readonly<{
1364
+ } & (NonNullable<T> extends BaseType ? unknown : NonNullable<T> extends Array<any> ? WritableArrayStore<NonNullable<T>> : Readonly<{
1344
1365
  [K in keyof Required<T>]: WritableSignalStore<NonNullable<T>[K]>;
1345
1366
  }>);
1346
1367
  type MutableSignalStore<T> = MutableSignal<T> & {
1347
1368
  readonly asReadonlyStore: () => SignalStore<T>;
1348
- } & (NonNullable<T> extends BaseType ? unknown : Readonly<{
1369
+ } & (NonNullable<T> extends BaseType ? unknown : NonNullable<T> extends Array<any> ? MutableArrayStore<NonNullable<T>> : Readonly<{
1349
1370
  [K in keyof Required<T>]: MutableSignalStore<NonNullable<T>[K]>;
1350
1371
  }>);
1351
- /**
1352
- * Validates whether a value is a Signal Store.
1353
- */
1354
- declare function isStore<T>(value: unknown): value is SignalStore<T>;
1355
1372
  declare function toStore<T extends AnyRecord>(source: MutableSignal<T>, injector?: Injector): MutableSignalStore<T>;
1356
1373
  declare function toStore<T extends AnyRecord>(source: WritableSignal<T>, injector?: Injector): WritableSignalStore<T>;
1357
1374
  declare function toStore<T extends AnyRecord>(source: Signal<T>, injector?: Injector): SignalStore<T>;
1358
- declare function store<T extends AnyRecord>(value: T, opt?: CreateSignalOptions<T>): WritableSignalStore<T>;
1359
- declare function mutableStore<T extends AnyRecord>(value: T, opt?: CreateSignalOptions<T>): MutableSignalStore<T>;
1375
+ /**
1376
+ * Creates a WritableSignalStore from a value.
1377
+ * @see {@link toStore}
1378
+ */
1379
+ declare function store<T extends AnyRecord>(value: T, opt?: CreateSignalOptions<T> & {
1380
+ injector?: Injector;
1381
+ }): WritableSignalStore<T>;
1382
+ /**
1383
+ * Creates a MutableSignalStore from a value.
1384
+ * @see {@link toStore}
1385
+ */
1386
+ declare function mutableStore<T extends AnyRecord>(value: T, opt?: CreateSignalOptions<T> & {
1387
+ injector?: Injector;
1388
+ }): MutableSignalStore<T>;
1360
1389
 
1361
1390
  /**
1362
1391
  * Interface for storage mechanisms compatible with the `stored` signal.