@stackedapp/utils 1.15.10 → 1.15.11

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.
@@ -1,4 +1,8 @@
1
- import { PlayerDelta, StackedSnapshot, StackedOffer } from '@stackedapp/types';
1
+ import { StackedSnapshot, StackedOffer, StackedPlayerDelta } from '@stackedapp/types';
2
+ /**
3
+ * Helper to check if a delta has any operations
4
+ */
5
+ export declare function isEmptyDelta(delta: StackedPlayerDelta): boolean;
2
6
  /**
3
7
  * Apply a PlayerDelta to a target object (StackedSnapshot or StackedOffer).
4
8
  * Mutates the target object in place and returns it.
@@ -27,19 +31,19 @@ import { PlayerDelta, StackedSnapshot, StackedOffer } from '@stackedapp/types';
27
31
  * // offer.completionTrackers.buyItem is now 8
28
32
  * ```
29
33
  */
30
- export declare function applyDelta<T extends StackedSnapshot | StackedOffer>(target: T, delta: PlayerDelta): T;
34
+ export declare function applyDelta<T extends StackedSnapshot | StackedOffer>(target: T, delta: StackedPlayerDelta): T;
31
35
  /**
32
36
  * Apply a PlayerDelta to a StackedSnapshot.
33
37
  * Convenience wrapper with correct typing.
34
38
  */
35
- export declare function applySnapshotDelta(snapshot: StackedSnapshot, delta: PlayerDelta): StackedSnapshot;
39
+ export declare function applySnapshotDelta(snapshot: StackedSnapshot, delta: StackedPlayerDelta): StackedSnapshot;
36
40
  /**
37
41
  * Apply a PlayerDelta to a StackedOffer.
38
42
  * Convenience wrapper with correct typing.
39
43
  *
40
44
  * Note: For offer deltas, check delta.offers to see if this offer is affected.
41
45
  */
42
- export declare function applyOfferDelta(offer: StackedOffer, delta: PlayerDelta): StackedOffer;
46
+ export declare function applyOfferDelta(offer: StackedOffer, delta: StackedPlayerDelta): StackedOffer;
43
47
  /**
44
48
  * Check if an offer is affected by a delta.
45
49
  * Use this to filter which offers need updating.
@@ -48,7 +52,7 @@ export declare function applyOfferDelta(offer: StackedOffer, delta: PlayerDelta)
48
52
  * @param delta - The delta to check against
49
53
  * @returns true if this offer is in the delta's affected offers list
50
54
  */
51
- export declare function isOfferAffectedByDelta(offerId: string, delta: PlayerDelta): boolean;
55
+ export declare function isOfferAffectedByDelta(offerId: string, delta: StackedPlayerDelta): boolean;
52
56
  /**
53
57
  * Apply a delta to multiple offers, only updating affected ones.
54
58
  *
@@ -56,5 +60,5 @@ export declare function isOfferAffectedByDelta(offerId: string, delta: PlayerDel
56
60
  * @param delta - The delta to apply
57
61
  * @returns Array of offerIds that were updated
58
62
  */
59
- export declare function applyDeltaToOffers(offers: Map<string, StackedOffer> | Record<string, StackedOffer>, delta: PlayerDelta): string[];
63
+ export declare function applyDeltaToOffers(offers: Map<string, StackedOffer> | Record<string, StackedOffer>, delta: StackedPlayerDelta): string[];
60
64
  //# sourceMappingURL=apply_delta.d.ts.map
@@ -1,10 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEmptyDelta = isEmptyDelta;
3
4
  exports.applyDelta = applyDelta;
4
5
  exports.applySnapshotDelta = applySnapshotDelta;
5
6
  exports.applyOfferDelta = applyOfferDelta;
6
7
  exports.isOfferAffectedByDelta = isOfferAffectedByDelta;
7
8
  exports.applyDeltaToOffers = applyDeltaToOffers;
9
+ /**
10
+ * Helper to check if a delta has any operations
11
+ */
12
+ function isEmptyDelta(delta) {
13
+ return ((!delta.set || Object.keys(delta.set).length === 0) &&
14
+ (!delta.inc || Object.keys(delta.inc).length === 0) &&
15
+ (!delta.min || Object.keys(delta.min).length === 0) &&
16
+ (!delta.max || Object.keys(delta.max).length === 0) &&
17
+ (!delta.unset || delta.unset.length === 0) &&
18
+ (!delta.addToSet || Object.keys(delta.addToSet).length === 0) &&
19
+ (!delta.push || Object.keys(delta.push).length === 0) &&
20
+ (!delta.pull || Object.keys(delta.pull).length === 0));
21
+ }
8
22
  /**
9
23
  * Get a nested value from an object using a dot-separated path.
10
24
  * e.g., getNestedValue(obj, 'currencies.gold.balance')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackedapp/utils",
3
- "version": "1.15.10",
3
+ "version": "1.15.11",
4
4
  "description": "Public utilities for Stacked platform SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",