@stigg/js-client-sdk 3.17.0 → 3.17.1

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.
@@ -2,6 +2,7 @@ import CachedEntitlement from './cachedEntitlement';
2
2
  export interface CacheService {
3
3
  isLoaded(): boolean;
4
4
  getLastUpdate(): Date | null;
5
+ isOutdated(): boolean;
5
6
  setEntitlements(entitlements: Map<string, CachedEntitlement>, lastUpdate: Date): void;
6
7
  getEntitlement(featureId: string): CachedEntitlement | null;
7
8
  getEntitlements(): Map<string, CachedEntitlement>;
@@ -14,13 +14,8 @@ export declare class EntitlementsService {
14
14
  private readonly entitlementsApi;
15
15
  private readonly modelMapper;
16
16
  private loadingEntitlements;
17
- private entitlementsPollingDeferTimeout;
18
- private entitlementsPollingObserver;
19
17
  private entitlementCheckReportingService;
20
18
  constructor(customerId: string, resourceId: string | undefined, cacheService: CacheService, client: ApolloClient<NormalizedCacheObject>, batchedGraphClient: ApolloClient<NormalizedCacheObject>, edgeApiClient: EdgeApiClient | null, loggerService: LoggerService, onEntitlementsUpdated: (cachedEntitlements: Map<string, CachedEntitlement>) => void);
21
- startPolling(interval: number): void;
22
- stopPolling(): void;
23
- restartPolling(intervalMs: number): void;
24
19
  refresh(): Promise<void>;
25
20
  get isInitialized(): boolean;
26
21
  getBooleanEntitlement(featureId: string, fallbackEntitlement: BooleanEntitlement, options?: BooleanEntitlementOptions): BooleanEntitlement;
@@ -31,5 +26,8 @@ export declare class EntitlementsService {
31
26
  private loadEntitlementsFromRemote;
32
27
  protected storeFetchedEntitlementsInCache(entitlements: EntitlementFragment[]): void;
33
28
  private getLastEntitlementsUpdate;
29
+ private getEntitlment;
34
30
  getEntitlements(): Promise<BooleanEntitlement[]>;
31
+ renewOutdatedCache(renewCondition: () => boolean): Promise<void>;
32
+ renewOutdatedCacheInBackground(renewCondition: () => boolean): void;
35
33
  }
@@ -1,10 +1,11 @@
1
1
  import { CacheService } from './cacheService';
2
2
  import CachedEntitlement from './cachedEntitlement';
3
3
  export declare class InMemoryCacheService implements CacheService {
4
+ private readonly ttlMs;
4
5
  private entitlements;
5
6
  private lastUpdate;
6
7
  private features;
7
- constructor();
8
+ constructor(ttlMs?: number);
8
9
  getEntitlement(featureId: string): CachedEntitlement | null;
9
10
  validateFeature(featureId: string): boolean;
10
11
  setFeatures: (features: string[]) => Set<string>;
@@ -12,4 +13,5 @@ export declare class InMemoryCacheService implements CacheService {
12
13
  getEntitlements(): Map<string, CachedEntitlement>;
13
14
  getLastUpdate(): Date | null;
14
15
  isLoaded(): boolean;
16
+ isOutdated(): boolean;
15
17
  }
@@ -1,6 +1,5 @@
1
1
  import { ApolloQueryResult } from '@apollo/client/core';
2
2
  import { GetEntitlementsQuery, GetPaywallQuery, GetSdkConfigurationQuery } from '@stigg/api-client-js/src/generated/sdk';
3
- import { ObservablePoller } from '../utils/ObservablePoller';
4
3
  declare type EdgeApiClientConfiguration = {
5
4
  apiKey: string;
6
5
  baseEdgeUri: string;
@@ -16,7 +15,6 @@ export declare class EdgeApiClient {
16
15
  getPaywall(productId?: string, billingCountryCode?: string, includeHiddenPlans?: boolean): Promise<ApolloQueryResult<GetPaywallQuery>>;
17
16
  getEntitlements(customerId: string, resourceId: string | undefined): Promise<ApolloQueryResult<GetEntitlementsQuery>>;
18
17
  getSdkConfiguration(): Promise<ApolloQueryResult<GetSdkConfigurationQuery>>;
19
- watchEntitlements(customerId: string, interval: number, resourceId: string | undefined): ObservablePoller<GetEntitlementsQuery>;
20
18
  private get;
21
19
  }
22
20
  export {};
@@ -6,9 +6,6 @@ declare class EntitlementsApi {
6
6
  private readonly edgeApiClient;
7
7
  constructor(client: ApolloClient<NormalizedCacheObject>, edgeApiClient: EdgeApiClient | null);
8
8
  getEntitlements(customerId: string, skipEdge?: boolean, resourceId?: string): Promise<import("@apollo/client/core").ApolloQueryResult<GetEntitlementsQuery>>;
9
- pollEntitlements(customerId: string, interval: number, resourceId?: string): import("../utils/ObservablePoller").ObservablePoller<GetEntitlementsQuery> | import("@apollo/client/core").ObservableQuery<GetEntitlementsQuery, import("@stigg/api-client-js/src/generated/sdk").Exact<{
10
- query: import("@stigg/api-client-js/src/generated/sdk").FetchEntitlementsQuery;
11
- }>>;
12
9
  reportEntitlementRequested(featureId: string, customerId: string, entitlementCheckResult: EntitlementCheckResult, resourceId?: string, requestedUsage?: number): Promise<void>;
13
10
  }
14
11
  export default EntitlementsApi;
@@ -10,8 +10,11 @@ export declare type ClientConfiguration = {
10
10
  customerId?: string | null;
11
11
  resourceId?: string | null;
12
12
  customerToken?: string | null;
13
+ /** @deprecated not longer in use */
13
14
  entitlementPollingInterval?: number;
15
+ /** @deprecated not longer in use */
14
16
  useEntitlementPolling?: boolean;
17
+ cacheTtlMs?: number;
15
18
  logConfiguration?: LogConfiguration;
16
19
  lazyLoad?: boolean;
17
20
  enableEdge?: boolean;
@@ -2,6 +2,7 @@ import CachedEntitlement from './cachedEntitlement';
2
2
  export interface CacheService {
3
3
  isLoaded(): boolean;
4
4
  getLastUpdate(): Date | null;
5
+ isOutdated(): boolean;
5
6
  setEntitlements(entitlements: Map<string, CachedEntitlement>, lastUpdate: Date): void;
6
7
  getEntitlement(featureId: string): CachedEntitlement | null;
7
8
  getEntitlements(): Map<string, CachedEntitlement>;
@@ -14,13 +14,8 @@ export declare class EntitlementsService {
14
14
  private readonly entitlementsApi;
15
15
  private readonly modelMapper;
16
16
  private loadingEntitlements;
17
- private entitlementsPollingDeferTimeout;
18
- private entitlementsPollingObserver;
19
17
  private entitlementCheckReportingService;
20
18
  constructor(customerId: string, resourceId: string | undefined, cacheService: CacheService, client: ApolloClient<NormalizedCacheObject>, batchedGraphClient: ApolloClient<NormalizedCacheObject>, edgeApiClient: EdgeApiClient | null, loggerService: LoggerService, onEntitlementsUpdated: (cachedEntitlements: Map<string, CachedEntitlement>) => void);
21
- startPolling(interval: number): void;
22
- stopPolling(): void;
23
- restartPolling(intervalMs: number): void;
24
19
  refresh(): Promise<void>;
25
20
  get isInitialized(): boolean;
26
21
  getBooleanEntitlement(featureId: string, fallbackEntitlement: BooleanEntitlement, options?: BooleanEntitlementOptions): BooleanEntitlement;
@@ -31,5 +26,8 @@ export declare class EntitlementsService {
31
26
  private loadEntitlementsFromRemote;
32
27
  protected storeFetchedEntitlementsInCache(entitlements: EntitlementFragment[]): void;
33
28
  private getLastEntitlementsUpdate;
29
+ private getEntitlment;
34
30
  getEntitlements(): Promise<BooleanEntitlement[]>;
31
+ renewOutdatedCache(renewCondition: () => boolean): Promise<void>;
32
+ renewOutdatedCacheInBackground(renewCondition: () => boolean): void;
35
33
  }
@@ -1,10 +1,11 @@
1
1
  import { CacheService } from './cacheService';
2
2
  import CachedEntitlement from './cachedEntitlement';
3
3
  export declare class InMemoryCacheService implements CacheService {
4
+ private readonly ttlMs;
4
5
  private entitlements;
5
6
  private lastUpdate;
6
7
  private features;
7
- constructor();
8
+ constructor(ttlMs?: number);
8
9
  getEntitlement(featureId: string): CachedEntitlement | null;
9
10
  validateFeature(featureId: string): boolean;
10
11
  setFeatures: (features: string[]) => Set<string>;
@@ -12,4 +13,5 @@ export declare class InMemoryCacheService implements CacheService {
12
13
  getEntitlements(): Map<string, CachedEntitlement>;
13
14
  getLastUpdate(): Date | null;
14
15
  isLoaded(): boolean;
16
+ isOutdated(): boolean;
15
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigg/js-client-sdk",
3
- "version": "3.17.0",
3
+ "version": "3.17.1",
4
4
  "description": "Stigg client-side SDK for Browser",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -1,8 +0,0 @@
1
- /// <reference types="zen-observable" />
2
- import { Observable } from 'zen-observable-ts';
3
- import { ApolloQueryResult } from '@apollo/client/core';
4
- export declare class ObservablePoller<T> extends Observable<ApolloQueryResult<T>> {
5
- private stopped;
6
- constructor(getData: () => Promise<ApolloQueryResult<T>>, pollInterval: number);
7
- stopPolling(): void;
8
- }
@@ -1,8 +0,0 @@
1
- /// <reference types="zen-observable" />
2
- import { Observable } from 'zen-observable-ts';
3
- import { ApolloQueryResult } from '@apollo/client/core';
4
- export declare class ObservablePoller<T> extends Observable<ApolloQueryResult<T>> {
5
- private stopped;
6
- constructor(getData: () => Promise<ApolloQueryResult<T>>, pollInterval: number);
7
- stopPolling(): void;
8
- }