flurryx 1.3.3 → 1.3.5
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/README.md +26 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -317,9 +317,9 @@ Once injected, the store exposes these methods:
|
|
|
317
317
|
| `update(key, partial)` | Merges partial state (immutable spread) |
|
|
318
318
|
| `clear(key)` | Resets a slot to its initial empty state |
|
|
319
319
|
| `clearAll()` | Resets every slot in one store |
|
|
320
|
-
| `clearAllStores()` |
|
|
320
|
+
| `clearAllStores()` | Exported helper that resets every tracked store instance |
|
|
321
321
|
| `startLoading(key)` | Sets `isLoading: true`, clears `status` and `errors` |
|
|
322
|
-
| `stopLoading(key)` | Sets `isLoading: false
|
|
322
|
+
| `stopLoading(key)` | Sets `isLoading: false` |
|
|
323
323
|
| `onUpdate(key, callback)` | Registers a listener fired after `update` or `clear`. Returns an unsubscribe function |
|
|
324
324
|
|
|
325
325
|
**Keyed methods** (for `KeyedResourceData` slots):
|
|
@@ -439,6 +439,8 @@ this.http
|
|
|
439
439
|
|
|
440
440
|
Only the targeted resource key is updated. Other keys in the same slot are untouched.
|
|
441
441
|
|
|
442
|
+
On subscribe, keyed slot is bootstrapped immediately so per-key loading state exists before first response. Top-level `isLoading` reflects whether any keyed entry is still loading.
|
|
443
|
+
|
|
442
444
|
**`mapResponse`** — transform the API response before writing to the store:
|
|
443
445
|
|
|
444
446
|
```typescript
|
|
@@ -485,7 +487,7 @@ loadProducts() { /* only runs when cache is stale */ }
|
|
|
485
487
|
- Cache hit returns `of(cachedData)` or coalesces onto the in-flight `Observable` via `shareReplay`
|
|
486
488
|
- Cache miss executes the method and wraps the result with inflight tracking
|
|
487
489
|
|
|
488
|
-
**Keyed resources**: When the first argument is a `string | number` and the store data is a `KeyedResourceData`, cache entries are tracked per resource key automatically.
|
|
490
|
+
**Keyed resources**: When the first argument is a `string | number` and the store data is a `KeyedResourceData`, cache entries are tracked per resource key automatically. Invalidating or clearing one keyed entry only evicts cache metadata for that same `resourceKey`.
|
|
489
491
|
|
|
490
492
|
### @Loading
|
|
491
493
|
|
|
@@ -580,6 +582,8 @@ Each resource key gets **independent** loading, status, and error tracking. The
|
|
|
580
582
|
|
|
581
583
|
On first keyed fetch, `syncToKeyedStore(..., id)` now bootstraps keyed slot immediately on subscribe. That means `data?.[id]?.isLoading` becomes `true` before first response arrives, without manually seeding `createKeyedResourceData()`.
|
|
582
584
|
|
|
585
|
+
For Angular-safe reactive reads, prefer `store.get('ITEMS').for(id)`. `.for(...)` is a pure computed read, accepts either a raw key or a signal key, and is safe to call inside `computed()`.
|
|
586
|
+
|
|
583
587
|
**Full example:**
|
|
584
588
|
|
|
585
589
|
```typescript
|
|
@@ -597,6 +601,7 @@ export class InvoiceFacade {
|
|
|
597
601
|
private readonly http = inject(HttpClient);
|
|
598
602
|
readonly store = inject(InvoiceStore);
|
|
599
603
|
readonly items = this.store.get('ITEMS');
|
|
604
|
+
readonly invoiceState = this.items.for('inv-123');
|
|
600
605
|
|
|
601
606
|
@SkipIfCached('ITEMS', (i: InvoiceFacade) => i.store)
|
|
602
607
|
@Loading('ITEMS', (i: InvoiceFacade) => i.store)
|
|
@@ -613,6 +618,11 @@ const data = this.facade.items().data; // KeyedResourceData
|
|
|
613
618
|
const invoice = data?.["inv-123"]?.data; // Invoice | undefined
|
|
614
619
|
const loading = data?.["inv-123"]?.isLoading; // boolean | undefined
|
|
615
620
|
const errors = data?.["inv-123"]?.errors; // ResourceErrors | undefined
|
|
621
|
+
|
|
622
|
+
// Preferred reactive read API
|
|
623
|
+
const invoiceState = this.facade.invoiceState();
|
|
624
|
+
const reactiveInvoice = invoiceState.data; // Invoice | undefined
|
|
625
|
+
const reactiveLoading = invoiceState.isLoading; // boolean
|
|
616
626
|
```
|
|
617
627
|
|
|
618
628
|
**Utilities:**
|
|
@@ -634,12 +644,12 @@ When building session or aggregation stores that combine state from multiple fea
|
|
|
634
644
|
```
|
|
635
645
|
+--------------------+ +--------------------+
|
|
636
646
|
| Feature Store A | | |
|
|
637
|
-
| (CUSTOMERS)
|
|
647
|
+
| (CUSTOMERS) |<- mirrorKey ----->| |
|
|
638
648
|
+--------------------+ | |
|
|
639
649
|
| Session Store |
|
|
640
650
|
+--------------------+ | (aggregated) |
|
|
641
651
|
| Feature Store B | | |
|
|
642
|
-
| (ORDERS)
|
|
652
|
+
| (ORDERS) |<- mirrorKey ----->| CUSTOMERS + |
|
|
643
653
|
+--------------------+ | ORDERS + |
|
|
644
654
|
| CUSTOMER_CACHE + |
|
|
645
655
|
+--------------------+ | ORDER_CACHE + |
|
|
@@ -834,36 +844,37 @@ Each entity fetched through the source slot is accumulated by ID into the target
|
|
|
834
844
|
|
|
835
845
|
### mirrorKey
|
|
836
846
|
|
|
837
|
-
Mirrors a resource key
|
|
847
|
+
Mirrors a resource key **bidirectionally** by default between two stores. When either side updates — data, loading, errors — the other receives the same state. A guard flag prevents infinite update loops. Set `direction: 'source-to-target'` for one-way mirroring.
|
|
838
848
|
|
|
839
849
|
```
|
|
840
850
|
+------------------+--------------------------------+------------------+
|
|
841
851
|
| CustomerStore | mirrorKey | SessionStore |
|
|
842
852
|
| | | |
|
|
843
|
-
| CUSTOMERS
|
|
844
|
-
| | (
|
|
853
|
+
| CUSTOMERS -------|<-- onUpdate --> update ------>| CUSTOMERS |
|
|
854
|
+
| | (bidirectional by default) | |
|
|
845
855
|
| { data, | | { data, |
|
|
846
856
|
| status, | | status, |
|
|
847
857
|
| isLoading } | | isLoading } |
|
|
848
858
|
+------------------+--------------------------------+------------------+
|
|
849
859
|
|
|
850
|
-
|
|
851
|
-
|
|
|
852
|
-
'--> target is automatically updated with the same state
|
|
860
|
+
Either side can update — the other side follows automatically.
|
|
853
861
|
```
|
|
854
862
|
|
|
855
|
-
You wire it once. Every future update — data, loading, errors — flows
|
|
863
|
+
You wire it once. Every future update — data, loading, errors — flows in both directions. Call the cleanup function or use `destroyRef` to stop.
|
|
856
864
|
|
|
857
865
|
```typescript
|
|
858
|
-
// Same key on both stores (default)
|
|
866
|
+
// Same key on both stores (bidirectional by default)
|
|
859
867
|
mirrorKey(customersStore, 'CUSTOMERS', sessionStore);
|
|
860
868
|
|
|
861
|
-
// Different keys
|
|
869
|
+
// Different keys — still bidirectional
|
|
862
870
|
mirrorKey(customersStore, 'ITEMS', sessionStore, 'ARTICLES');
|
|
863
871
|
|
|
872
|
+
// One-way only (source → target)
|
|
873
|
+
mirrorKey(customersStore, 'CUSTOMERS', sessionStore, { direction: 'source-to-target' });
|
|
874
|
+
|
|
864
875
|
// Manual cleanup
|
|
865
876
|
const cleanup = mirrorKey(customersStore, 'CUSTOMERS', sessionStore);
|
|
866
|
-
cleanup(); // stop mirroring
|
|
877
|
+
cleanup(); // stop mirroring in both directions
|
|
867
878
|
|
|
868
879
|
// Auto-cleanup with Angular DestroyRef
|
|
869
880
|
mirrorKey(customersStore, 'CUSTOMERS', sessionStore, { destroyRef });
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @flurryx/core\nexport type {\n ResourceState,\n StoreEnum,\n KeyedResourceData,\n KeyedResourceKey,\n ResourceStatus,\n ResourceErrors,\n} from \"@flurryx/core\";\nexport {\n isKeyedResourceData,\n createKeyedResourceData,\n isAnyKeyLoading,\n CACHE_NO_TIMEOUT,\n DEFAULT_CACHE_TTL_MS,\n} from \"@flurryx/core\";\n\n// @flurryx/store\nexport {\n BaseStore,\n LazyStore,\n Store,\n clearAllStores,\n mirrorKey,\n deriveKey,\n collectKeyed,\n cloneValue,\n createSnapshotRestorePatch,\n createInMemoryStoreMessageChannel,\n createStorageStoreMessageChannel,\n createLocalStorageStoreMessageChannel,\n createSessionStorageStoreMessageChannel,\n createCompositeStoreMessageChannel,\n} from \"@flurryx/store\";\nexport type {\n MirrorOptions,\n DeriveOptions,\n
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @flurryx/core\nexport type {\n ResourceState,\n StoreEnum,\n KeyedResourceData,\n KeyedResourceKey,\n ResourceStatus,\n ResourceErrors,\n} from \"@flurryx/core\";\nexport {\n isKeyedResourceData,\n createKeyedResourceData,\n isAnyKeyLoading,\n CACHE_NO_TIMEOUT,\n DEFAULT_CACHE_TTL_MS,\n} from \"@flurryx/core\";\n\n// @flurryx/store\nexport {\n BaseStore,\n LazyStore,\n Store,\n clearAllStores,\n mirrorKey,\n deriveKey,\n collectKeyed,\n cloneValue,\n createSnapshotRestorePatch,\n createInMemoryStoreMessageChannel,\n createStorageStoreMessageChannel,\n createLocalStorageStoreMessageChannel,\n createSessionStorageStoreMessageChannel,\n createCompositeStoreMessageChannel,\n} from \"@flurryx/store\";\nexport type {\n MirrorOptions,\n DeriveOptions,\n CollectKeyedOptions,\n StoreCacheInvalidateEvent,\n StoreOptions,\n StoreDeadLetterEntry,\n StoreHistory,\n StoreHistoryEntry,\n StoreMessageStatus,\n StoreMessageRecord,\n StoreMessageChannel,\n StoreMessageChannelStorage,\n StoreMessageChannelOptions,\n CompositeStoreMessageChannelOptions,\n StorageStoreMessageChannelOptions,\n BrowserStorageStoreMessageChannelOptions,\n StoreSnapshot,\n StoreMessage,\n StoreDeadLetterCommand,\n StoreDeadLetterMeta,\n DeadLetterCommandResolverResult,\n UpdateStoreMessage,\n ClearStoreMessage,\n ClearAllStoreMessage,\n StartLoadingStoreMessage,\n StopLoadingStoreMessage,\n UpdateKeyedOneStoreMessage,\n ClearKeyedOneStoreMessage,\n StartKeyedLoadingStoreMessage,\n EnsureKeyedSlotStoreMessage,\n KeyedResourceState,\n KeyedStoreSignal,\n StoreSignal,\n ValueOrSignal,\n } from \"@flurryx/store\";\n\n// @flurryx/rx\nexport {\n syncToStore,\n syncToKeyedStore,\n SkipIfCached,\n Loading,\n defaultErrorNormalizer,\n} from \"@flurryx/rx\";\nexport type {\n SyncToStoreOptions,\n SyncToKeyedStoreOptions,\n ErrorNormalizer,\n} from \"@flurryx/rx\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,kBAMO;AAGP,mBAeO;AAuCP,gBAMO;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { CACHE_NO_TIMEOUT, DEFAULT_CACHE_TTL_MS, KeyedResourceData, KeyedResourceKey, ResourceErrors, ResourceState, ResourceStatus, StoreEnum, createKeyedResourceData, isAnyKeyLoading, isKeyedResourceData } from '@flurryx/core';
|
|
2
|
-
export { BaseStore, BrowserStorageStoreMessageChannelOptions, ClearAllStoreMessage, ClearKeyedOneStoreMessage, ClearStoreMessage, CollectKeyedOptions, CompositeStoreMessageChannelOptions, DeadLetterCommandResolverResult, DeriveOptions, EnsureKeyedSlotStoreMessage, KeyedResourceState, KeyedStoreSignal, LazyStore, MirrorOptions, StartKeyedLoadingStoreMessage, StartLoadingStoreMessage, StopLoadingStoreMessage, StorageStoreMessageChannelOptions, Store, StoreDeadLetterCommand, StoreDeadLetterEntry, StoreDeadLetterMeta, StoreHistory, StoreHistoryEntry, StoreMessage, StoreMessageChannel, StoreMessageChannelOptions, StoreMessageChannelStorage, StoreMessageRecord, StoreMessageStatus, StoreOptions, StoreSignal, StoreSnapshot, UpdateKeyedOneStoreMessage, UpdateStoreMessage, ValueOrSignal, clearAllStores, cloneValue, collectKeyed, createCompositeStoreMessageChannel, createInMemoryStoreMessageChannel, createLocalStorageStoreMessageChannel, createSessionStorageStoreMessageChannel, createSnapshotRestorePatch, createStorageStoreMessageChannel, deriveKey, mirrorKey } from '@flurryx/store';
|
|
2
|
+
export { BaseStore, BrowserStorageStoreMessageChannelOptions, ClearAllStoreMessage, ClearKeyedOneStoreMessage, ClearStoreMessage, CollectKeyedOptions, CompositeStoreMessageChannelOptions, DeadLetterCommandResolverResult, DeriveOptions, EnsureKeyedSlotStoreMessage, KeyedResourceState, KeyedStoreSignal, LazyStore, MirrorOptions, StartKeyedLoadingStoreMessage, StartLoadingStoreMessage, StopLoadingStoreMessage, StorageStoreMessageChannelOptions, Store, StoreCacheInvalidateEvent, StoreDeadLetterCommand, StoreDeadLetterEntry, StoreDeadLetterMeta, StoreHistory, StoreHistoryEntry, StoreMessage, StoreMessageChannel, StoreMessageChannelOptions, StoreMessageChannelStorage, StoreMessageRecord, StoreMessageStatus, StoreOptions, StoreSignal, StoreSnapshot, UpdateKeyedOneStoreMessage, UpdateStoreMessage, ValueOrSignal, clearAllStores, cloneValue, collectKeyed, createCompositeStoreMessageChannel, createInMemoryStoreMessageChannel, createLocalStorageStoreMessageChannel, createSessionStorageStoreMessageChannel, createSnapshotRestorePatch, createStorageStoreMessageChannel, deriveKey, mirrorKey } from '@flurryx/store';
|
|
3
3
|
export { ErrorNormalizer, Loading, SkipIfCached, SyncToKeyedStoreOptions, SyncToStoreOptions, defaultErrorNormalizer, syncToKeyedStore, syncToStore } from '@flurryx/rx';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { CACHE_NO_TIMEOUT, DEFAULT_CACHE_TTL_MS, KeyedResourceData, KeyedResourceKey, ResourceErrors, ResourceState, ResourceStatus, StoreEnum, createKeyedResourceData, isAnyKeyLoading, isKeyedResourceData } from '@flurryx/core';
|
|
2
|
-
export { BaseStore, BrowserStorageStoreMessageChannelOptions, ClearAllStoreMessage, ClearKeyedOneStoreMessage, ClearStoreMessage, CollectKeyedOptions, CompositeStoreMessageChannelOptions, DeadLetterCommandResolverResult, DeriveOptions, EnsureKeyedSlotStoreMessage, KeyedResourceState, KeyedStoreSignal, LazyStore, MirrorOptions, StartKeyedLoadingStoreMessage, StartLoadingStoreMessage, StopLoadingStoreMessage, StorageStoreMessageChannelOptions, Store, StoreDeadLetterCommand, StoreDeadLetterEntry, StoreDeadLetterMeta, StoreHistory, StoreHistoryEntry, StoreMessage, StoreMessageChannel, StoreMessageChannelOptions, StoreMessageChannelStorage, StoreMessageRecord, StoreMessageStatus, StoreOptions, StoreSignal, StoreSnapshot, UpdateKeyedOneStoreMessage, UpdateStoreMessage, ValueOrSignal, clearAllStores, cloneValue, collectKeyed, createCompositeStoreMessageChannel, createInMemoryStoreMessageChannel, createLocalStorageStoreMessageChannel, createSessionStorageStoreMessageChannel, createSnapshotRestorePatch, createStorageStoreMessageChannel, deriveKey, mirrorKey } from '@flurryx/store';
|
|
2
|
+
export { BaseStore, BrowserStorageStoreMessageChannelOptions, ClearAllStoreMessage, ClearKeyedOneStoreMessage, ClearStoreMessage, CollectKeyedOptions, CompositeStoreMessageChannelOptions, DeadLetterCommandResolverResult, DeriveOptions, EnsureKeyedSlotStoreMessage, KeyedResourceState, KeyedStoreSignal, LazyStore, MirrorOptions, StartKeyedLoadingStoreMessage, StartLoadingStoreMessage, StopLoadingStoreMessage, StorageStoreMessageChannelOptions, Store, StoreCacheInvalidateEvent, StoreDeadLetterCommand, StoreDeadLetterEntry, StoreDeadLetterMeta, StoreHistory, StoreHistoryEntry, StoreMessage, StoreMessageChannel, StoreMessageChannelOptions, StoreMessageChannelStorage, StoreMessageRecord, StoreMessageStatus, StoreOptions, StoreSignal, StoreSnapshot, UpdateKeyedOneStoreMessage, UpdateStoreMessage, ValueOrSignal, clearAllStores, cloneValue, collectKeyed, createCompositeStoreMessageChannel, createInMemoryStoreMessageChannel, createLocalStorageStoreMessageChannel, createSessionStorageStoreMessageChannel, createSnapshotRestorePatch, createStorageStoreMessageChannel, deriveKey, mirrorKey } from '@flurryx/store';
|
|
3
3
|
export { ErrorNormalizer, Loading, SkipIfCached, SyncToKeyedStoreOptions, SyncToStoreOptions, defaultErrorNormalizer, syncToKeyedStore, syncToStore } from '@flurryx/rx';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @flurryx/core\nexport type {\n ResourceState,\n StoreEnum,\n KeyedResourceData,\n KeyedResourceKey,\n ResourceStatus,\n ResourceErrors,\n} from \"@flurryx/core\";\nexport {\n isKeyedResourceData,\n createKeyedResourceData,\n isAnyKeyLoading,\n CACHE_NO_TIMEOUT,\n DEFAULT_CACHE_TTL_MS,\n} from \"@flurryx/core\";\n\n// @flurryx/store\nexport {\n BaseStore,\n LazyStore,\n Store,\n clearAllStores,\n mirrorKey,\n deriveKey,\n collectKeyed,\n cloneValue,\n createSnapshotRestorePatch,\n createInMemoryStoreMessageChannel,\n createStorageStoreMessageChannel,\n createLocalStorageStoreMessageChannel,\n createSessionStorageStoreMessageChannel,\n createCompositeStoreMessageChannel,\n} from \"@flurryx/store\";\nexport type {\n MirrorOptions,\n DeriveOptions,\n
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @flurryx/core\nexport type {\n ResourceState,\n StoreEnum,\n KeyedResourceData,\n KeyedResourceKey,\n ResourceStatus,\n ResourceErrors,\n} from \"@flurryx/core\";\nexport {\n isKeyedResourceData,\n createKeyedResourceData,\n isAnyKeyLoading,\n CACHE_NO_TIMEOUT,\n DEFAULT_CACHE_TTL_MS,\n} from \"@flurryx/core\";\n\n// @flurryx/store\nexport {\n BaseStore,\n LazyStore,\n Store,\n clearAllStores,\n mirrorKey,\n deriveKey,\n collectKeyed,\n cloneValue,\n createSnapshotRestorePatch,\n createInMemoryStoreMessageChannel,\n createStorageStoreMessageChannel,\n createLocalStorageStoreMessageChannel,\n createSessionStorageStoreMessageChannel,\n createCompositeStoreMessageChannel,\n} from \"@flurryx/store\";\nexport type {\n MirrorOptions,\n DeriveOptions,\n CollectKeyedOptions,\n StoreCacheInvalidateEvent,\n StoreOptions,\n StoreDeadLetterEntry,\n StoreHistory,\n StoreHistoryEntry,\n StoreMessageStatus,\n StoreMessageRecord,\n StoreMessageChannel,\n StoreMessageChannelStorage,\n StoreMessageChannelOptions,\n CompositeStoreMessageChannelOptions,\n StorageStoreMessageChannelOptions,\n BrowserStorageStoreMessageChannelOptions,\n StoreSnapshot,\n StoreMessage,\n StoreDeadLetterCommand,\n StoreDeadLetterMeta,\n DeadLetterCommandResolverResult,\n UpdateStoreMessage,\n ClearStoreMessage,\n ClearAllStoreMessage,\n StartLoadingStoreMessage,\n StopLoadingStoreMessage,\n UpdateKeyedOneStoreMessage,\n ClearKeyedOneStoreMessage,\n StartKeyedLoadingStoreMessage,\n EnsureKeyedSlotStoreMessage,\n KeyedResourceState,\n KeyedStoreSignal,\n StoreSignal,\n ValueOrSignal,\n } from \"@flurryx/store\";\n\n// @flurryx/rx\nexport {\n syncToStore,\n syncToKeyedStore,\n SkipIfCached,\n Loading,\n defaultErrorNormalizer,\n} from \"@flurryx/rx\";\nexport type {\n SyncToStoreOptions,\n SyncToKeyedStoreOptions,\n ErrorNormalizer,\n} from \"@flurryx/rx\";\n"],"mappings":";AASA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAuCP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flurryx",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.5",
|
|
4
4
|
"description": "Signal-first reactive state management for Angular",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
},
|
|
39
39
|
"sideEffects": false,
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flurryx/core": "1.3.
|
|
42
|
-
"@flurryx/store": "1.3.
|
|
43
|
-
"@flurryx/rx": "1.3.
|
|
41
|
+
"@flurryx/core": "1.3.4",
|
|
42
|
+
"@flurryx/store": "1.3.5",
|
|
43
|
+
"@flurryx/rx": "1.3.5"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"@angular/core": ">=17.0.0",
|