@stigg/node-server-sdk 4.21.2 → 4.22.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.
- package/dist/client.js +8 -8
- package/dist/clientInitialization.js +6 -6
- package/dist/configuration.d.ts +2 -2
- package/dist/models.d.ts +1 -1
- package/dist/services/LegacyEventPayloadMapper.d.ts +1 -2
- package/dist/services/LegacyEventPayloadMapper.js +1 -1
- package/dist/services/entitlementDecisionService.d.ts +1 -2
- package/dist/services/entitlementDecisionService.js +5 -5
- package/dist/services/entitlementsService.d.ts +2 -4
- package/dist/services/entitlementsService.js +29 -31
- package/dist/services/eventEmitter.d.ts +1 -1
- package/dist/services/eventEmitterCacheInstrumentation.d.ts +1 -1
- package/dist/services/inMemoryEntitlementsService.d.ts +2 -3
- package/dist/services/inMemoryEntitlementsService.js +4 -5
- package/dist/services/redisEntitlementsService.d.ts +3 -3
- package/dist/services/redisEntitlementsService.js +3 -3
- package/dist/utils/ModelMapper.d.ts +1 -1
- package/dist/utils/ModelMapper.js +22 -24
- package/dist/utils/entitlementFallbackUtils.d.ts +1 -1
- package/dist/utils/entitlementFallbackUtils.js +3 -3
- package/package.json +3 -1
- package/dist/services/ApiCacheMapper.d.ts +0 -15
- package/dist/services/ApiCacheMapper.js +0 -100
- package/dist/services/cache/CacheMapper.d.ts +0 -16
- package/dist/services/cache/CacheMapper.js +0 -3
- package/dist/services/cache/RedisSingleExecutionService/RedisSingleExecution.d.ts +0 -28
- package/dist/services/cache/RedisSingleExecutionService/RedisSingleExecution.js +0 -184
- package/dist/services/cache/RedisSingleExecutionService/RedisSingleExecution.utils.d.ts +0 -22
- package/dist/services/cache/RedisSingleExecutionService/RedisSingleExecution.utils.js +0 -16
- package/dist/services/cache/RedisSingleExecutionService/index.d.ts +0 -1
- package/dist/services/cache/RedisSingleExecutionService/index.js +0 -6
- package/dist/services/cache/accessDeniedReasonMapper.d.ts +0 -3
- package/dist/services/cache/accessDeniedReasonMapper.js +0 -15
- package/dist/services/cache/cacheKeysHelpers.d.ts +0 -9
- package/dist/services/cache/cacheKeysHelpers.js +0 -55
- package/dist/services/cache/cacheService.d.ts +0 -13
- package/dist/services/cache/cacheService.js +0 -3
- package/dist/services/cache/entities/cachedEntitlement.d.ts +0 -20
- package/dist/services/cache/entities/cachedEntitlement.js +0 -53
- package/dist/services/cache/entities/calculatedEntitlement.d.ts +0 -39
- package/dist/services/cache/entities/calculatedEntitlement.js +0 -3
- package/dist/services/cache/entities/entitlementQuery.d.ts +0 -8
- package/dist/services/cache/entities/entitlementQuery.js +0 -3
- package/dist/services/cache/entities/entitlementsMap.d.ts +0 -33
- package/dist/services/cache/entities/entitlementsMap.js +0 -92
- package/dist/services/cache/entities/index.d.ts +0 -6
- package/dist/services/cache/entities/index.js +0 -12
- package/dist/services/cache/entities/usageData.d.ts +0 -11
- package/dist/services/cache/entities/usageData.js +0 -9
- package/dist/services/cache/extractWithDependencies.d.ts +0 -12
- package/dist/services/cache/extractWithDependencies.js +0 -37
- package/dist/services/cache/freshness/EntitlementsFreshener.d.ts +0 -11
- package/dist/services/cache/freshness/EntitlementsFreshener.js +0 -27
- package/dist/services/cache/freshness/transformers/CreditAccessPropagator.d.ts +0 -15
- package/dist/services/cache/freshness/transformers/CreditAccessPropagator.js +0 -67
- package/dist/services/cache/freshness/transformers/UsagePeriodReset.d.ts +0 -11
- package/dist/services/cache/freshness/transformers/UsagePeriodReset.js +0 -45
- package/dist/services/cache/inMemoryCacheService.d.ts +0 -28
- package/dist/services/cache/inMemoryCacheService.js +0 -80
- package/dist/services/cache/index.d.ts +0 -13
- package/dist/services/cache/index.js +0 -38
- package/dist/services/cache/redis/distributedLocks.d.ts +0 -15
- package/dist/services/cache/redis/distributedLocks.js +0 -90
- package/dist/services/cache/redisCacheService.constants.d.ts +0 -6
- package/dist/services/cache/redisCacheService.constants.js +0 -10
- package/dist/services/cache/redisCacheService.d.ts +0 -78
- package/dist/services/cache/redisCacheService.js +0 -519
- package/dist/services/cache/types/cacheInstrumentation.d.ts +0 -37
- package/dist/services/cache/types/cacheInstrumentation.js +0 -3
- package/dist/services/cache/types/cacheResponse.d.ts +0 -26
- package/dist/services/cache/types/cacheResponse.js +0 -19
- package/dist/services/cache/types/cacheServiceParams.d.ts +0 -20
- package/dist/services/cache/types/cacheServiceParams.js +0 -3
- package/dist/services/cache/types/entitlementFeature.d.ts +0 -19
- package/dist/services/cache/types/entitlementFeature.js +0 -3
- package/dist/services/cache/types/entitlementsMapTransformer.d.ts +0 -4
- package/dist/services/cache/types/entitlementsMapTransformer.js +0 -3
- package/dist/services/cache/types/logger.d.ts +0 -6
- package/dist/services/cache/types/logger.js +0 -3
- package/dist/services/cache/types/redisConfiguration.d.ts +0 -39
- package/dist/services/cache/types/redisConfiguration.js +0 -14
- package/dist/types.d.ts +0 -3
- package/dist/types.js +0 -3
- package/dist/utils/calculateUsagePeriod.d.ts +0 -5
- package/dist/utils/calculateUsagePeriod.js +0 -37
- package/dist/utils/dateUtils.d.ts +0 -2
- package/dist/utils/dateUtils.js +0 -13
- package/dist/utils/decorators/ReuseOngoingExecution.d.ts +0 -2
- package/dist/utils/decorators/ReuseOngoingExecution.js +0 -38
- package/dist/utils/featureTypes.d.ts +0 -10
- package/dist/utils/featureTypes.js +0 -24
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Maybe } from '../../../types';
|
|
2
|
-
/**
|
|
3
|
-
* Data for cache hit tracking.
|
|
4
|
-
*/
|
|
5
|
-
export interface CacheHit {
|
|
6
|
-
customerId: string;
|
|
7
|
-
resourceId?: Maybe<string>;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Data for cache miss tracking.
|
|
11
|
-
*/
|
|
12
|
-
export interface CacheMiss extends CacheHit {
|
|
13
|
-
globalCustomerMissing?: boolean;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Data for Redis client error tracking.
|
|
17
|
-
*/
|
|
18
|
-
export interface RedisClientErrorData {
|
|
19
|
-
error: Error;
|
|
20
|
-
clientName: string;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Interface for cache instrumentation/metrics.
|
|
24
|
-
* Supports both read operations (trackHit/trackMiss) and write operations (trackWriteDuration/trackWriteError).
|
|
25
|
-
*/
|
|
26
|
-
export interface CacheInstrumentation {
|
|
27
|
-
/** Track a cache hit for a customer lookup */
|
|
28
|
-
trackHit?(data: CacheHit): void;
|
|
29
|
-
/** Track a cache miss for a customer lookup */
|
|
30
|
-
trackMiss?(data: CacheMiss): void;
|
|
31
|
-
/** Track Redis client connection or operation errors */
|
|
32
|
-
trackRedisClientError?(data: RedisClientErrorData): void;
|
|
33
|
-
/** Track the duration of a write operation */
|
|
34
|
-
trackWriteDuration?(operation: string, durationSeconds: number): void;
|
|
35
|
-
/** Track write operation errors */
|
|
36
|
-
trackWriteError?(operation: string): void;
|
|
37
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVJbnN0cnVtZW50YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvdHlwZXMvY2FjaGVJbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { CachedEntitlement, EntitlementType, EntitlementsMap } from '../entities';
|
|
2
|
-
import { AccessDeniedReason } from '@stigg/api-client-js/src/generated/sdk';
|
|
3
|
-
export declare const DATE_IN_FAR_PAST: Date;
|
|
4
|
-
export type EntitlementsResponseCacheHit = {
|
|
5
|
-
cacheMiss: false;
|
|
6
|
-
entitlements: EntitlementsMap;
|
|
7
|
-
accessDeniedReason: AccessDeniedReason | null;
|
|
8
|
-
globalCustomerMissing: false;
|
|
9
|
-
};
|
|
10
|
-
export type EntitlementsResponseCacheMiss = {
|
|
11
|
-
cacheMiss: true;
|
|
12
|
-
entitlements: null;
|
|
13
|
-
accessDeniedReason: null;
|
|
14
|
-
globalCustomerMissing: boolean;
|
|
15
|
-
};
|
|
16
|
-
export type EntitlementsResponse = EntitlementsResponseCacheHit | EntitlementsResponseCacheMiss;
|
|
17
|
-
export type EntitlementResponse<T extends EntitlementType = EntitlementType> = {
|
|
18
|
-
cacheMiss: boolean;
|
|
19
|
-
accessDeniedReason: AccessDeniedReason | null;
|
|
20
|
-
entitlement: CachedEntitlement<T> | null;
|
|
21
|
-
globalCustomerMissing: boolean;
|
|
22
|
-
};
|
|
23
|
-
export declare const entitlementsResponseMapper: {
|
|
24
|
-
cacheHit: (entitlements: EntitlementsMap, accessDeniedReason: AccessDeniedReason | null) => EntitlementsResponseCacheHit;
|
|
25
|
-
cacheMiss: (globalCustomerMissing?: boolean) => EntitlementsResponseCacheMiss;
|
|
26
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.entitlementsResponseMapper = exports.DATE_IN_FAR_PAST = void 0;
|
|
4
|
-
exports.DATE_IN_FAR_PAST = new Date(0);
|
|
5
|
-
exports.entitlementsResponseMapper = {
|
|
6
|
-
cacheHit: (entitlements, accessDeniedReason) => ({
|
|
7
|
-
cacheMiss: false,
|
|
8
|
-
entitlements,
|
|
9
|
-
accessDeniedReason,
|
|
10
|
-
globalCustomerMissing: false,
|
|
11
|
-
}),
|
|
12
|
-
cacheMiss: (globalCustomerMissing = false) => ({
|
|
13
|
-
cacheMiss: true,
|
|
14
|
-
entitlements: null,
|
|
15
|
-
accessDeniedReason: null,
|
|
16
|
-
globalCustomerMissing,
|
|
17
|
-
}),
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVSZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9jYWNoZS90eXBlcy9jYWNoZVJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdhLFFBQUEsZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUF5Qi9CLFFBQUEsMEJBQTBCLEdBQUc7SUFDeEMsUUFBUSxFQUFFLENBQ1IsWUFBNkIsRUFDN0Isa0JBQTZDLEVBQ2YsRUFBRSxDQUFDLENBQUM7UUFDbEMsU0FBUyxFQUFFLEtBQUs7UUFDaEIsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixxQkFBcUIsRUFBRSxLQUFLO0tBQzdCLENBQUM7SUFDRixTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLEVBQWlDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLFNBQVMsRUFBRSxJQUFJO1FBQ2YsWUFBWSxFQUFFLElBQUk7UUFDbEIsa0JBQWtCLEVBQUUsSUFBSTtRQUN4QixxQkFBcUI7S0FDdEIsQ0FBQztDQUNILENBQUMifQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { EntitlementsStateAccessDeniedReason } from '@stigg/api-client-js/src/generated/sdk';
|
|
2
|
-
import { EntitlementQuery, EntitlementType, UsageData } from '../entities';
|
|
3
|
-
import { Maybe } from '../../../types';
|
|
4
|
-
export type CustomerIdentity = {
|
|
5
|
-
customerId: string;
|
|
6
|
-
resourceId: Maybe<string>;
|
|
7
|
-
};
|
|
8
|
-
export type SetCustomerParams<T> = CustomerIdentity & {
|
|
9
|
-
entitlements: T[];
|
|
10
|
-
accessDeniedReason: Maybe<EntitlementsStateAccessDeniedReason>;
|
|
11
|
-
entitlementsTimestamp: number;
|
|
12
|
-
};
|
|
13
|
-
export type GetCustomerEntitlementParams<T extends EntitlementType = EntitlementType> = CustomerIdentity & {
|
|
14
|
-
query: EntitlementQuery<T>;
|
|
15
|
-
};
|
|
16
|
-
export type UpdateUsageParams<T extends EntitlementType = EntitlementType> = CustomerIdentity & {
|
|
17
|
-
entitlementReference: EntitlementQuery<T>;
|
|
18
|
-
usage: UsageData;
|
|
19
|
-
usageTimestamp: Date;
|
|
20
|
-
};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVTZXJ2aWNlUGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2NhY2hlL3R5cGVzL2NhY2hlU2VydmljZVBhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { FeatureType, MeterType, UnitTransformationRound } from '@stigg/api-client-js/src/generated/sdk';
|
|
2
|
-
export type UnitTransformation = {
|
|
3
|
-
divide: number;
|
|
4
|
-
round: UnitTransformationRound;
|
|
5
|
-
};
|
|
6
|
-
export type EntitlementFeature = {
|
|
7
|
-
id: string;
|
|
8
|
-
displayName: string;
|
|
9
|
-
description?: string;
|
|
10
|
-
featureType: FeatureType;
|
|
11
|
-
meterType?: MeterType;
|
|
12
|
-
units?: string;
|
|
13
|
-
unitsPlural?: string;
|
|
14
|
-
unitTransformation?: UnitTransformation;
|
|
15
|
-
};
|
|
16
|
-
export type EntitlementCreditRate = {
|
|
17
|
-
amount: number;
|
|
18
|
-
currencyId: string;
|
|
19
|
-
};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRGZWF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2NhY2hlL3R5cGVzL2VudGl0bGVtZW50RmVhdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzTWFwVHJhbnNmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvdHlwZXMvZW50aXRsZW1lbnRzTWFwVHJhbnNmb3JtZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export type LoggerExtra = Record<string, any> | Error | Error['stack'];
|
|
2
|
-
export interface SlimLogger {
|
|
3
|
-
log: (message: string, object?: LoggerExtra) => void;
|
|
4
|
-
debug: (message: string, object?: LoggerExtra) => void;
|
|
5
|
-
error: (message: string, error?: LoggerExtra) => void;
|
|
6
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2NhY2hlL3R5cGVzL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { RedisOptions } from 'ioredis/built/redis/RedisOptions';
|
|
2
|
-
import { Settings } from 'redlock';
|
|
3
|
-
/**
|
|
4
|
-
* Cache update policy that controls how the cache handles write operations.
|
|
5
|
-
*/
|
|
6
|
-
export declare enum CacheUpdatePolicy {
|
|
7
|
-
/** Always write to cache, creating new entries if they don't exist (default) */
|
|
8
|
-
UPSERT = "UPSERT",
|
|
9
|
-
/** Only update existing cache entries, skip if the key doesn't exist */
|
|
10
|
-
UPDATE_IF_EXISTS = "UPDATE_IF_EXISTS"
|
|
11
|
-
}
|
|
12
|
-
export type DistributedEntitlementsFetchingOptions = {
|
|
13
|
-
/** Whether to disable the distributed entitlements fetching mechanism */
|
|
14
|
-
disabled?: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* The buffer in milliseconds for waiting for notification from other instance.
|
|
17
|
-
*/
|
|
18
|
-
notificationBufferMs?: number;
|
|
19
|
-
};
|
|
20
|
-
export type StiggRedisOptions = RedisOptions & {
|
|
21
|
-
/** A prefix used in all Redis interactions to distinguish between different environments operating on the same Redis database */
|
|
22
|
-
environmentPrefix: string;
|
|
23
|
-
/** The TTL of data stored in Redis */
|
|
24
|
-
ttl?: number;
|
|
25
|
-
/** Configuration of the distributed entitlements fetching in case of a cache miss */
|
|
26
|
-
distributedEntitlementsFetching?: DistributedEntitlementsFetchingOptions;
|
|
27
|
-
};
|
|
28
|
-
export type LockSettings = Pick<Settings, 'retryCount' | 'retryDelay' | 'retryJitter'>;
|
|
29
|
-
export type RedisCacheConfiguration = {
|
|
30
|
-
redis: StiggRedisOptions;
|
|
31
|
-
/** Timeout for entitlements fetching in milliseconds. Defaults to 30000 (30 seconds). */
|
|
32
|
-
entitlementsTimeout?: number;
|
|
33
|
-
/** Cache update policy. Defaults to UPSERT. */
|
|
34
|
-
cacheUpdatePolicy?: CacheUpdatePolicy;
|
|
35
|
-
/** Settings for distributed lock acquisition. */
|
|
36
|
-
lockSettings?: LockSettings;
|
|
37
|
-
/** When true, operations run directly without safety wrapper (no connection check, errors propagate). Defaults to false. */
|
|
38
|
-
directExecution?: boolean;
|
|
39
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CacheUpdatePolicy = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Cache update policy that controls how the cache handles write operations.
|
|
6
|
-
*/
|
|
7
|
-
var CacheUpdatePolicy;
|
|
8
|
-
(function (CacheUpdatePolicy) {
|
|
9
|
-
/** Always write to cache, creating new entries if they don't exist (default) */
|
|
10
|
-
CacheUpdatePolicy["UPSERT"] = "UPSERT";
|
|
11
|
-
/** Only update existing cache entries, skip if the key doesn't exist */
|
|
12
|
-
CacheUpdatePolicy["UPDATE_IF_EXISTS"] = "UPDATE_IF_EXISTS";
|
|
13
|
-
})(CacheUpdatePolicy || (exports.CacheUpdatePolicy = CacheUpdatePolicy = {}));
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNDb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2NhY2hlL3R5cGVzL3JlZGlzQ29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQTs7R0FFRztBQUNILElBQVksaUJBTVg7QUFORCxXQUFZLGlCQUFpQjtJQUMzQixnRkFBZ0Y7SUFDaEYsc0NBQWlCLENBQUE7SUFFakIsd0VBQXdFO0lBQ3hFLDBEQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFOVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQU01QiJ9
|
package/dist/types.d.ts
DELETED
package/dist/types.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.calculateUsagePeriod = calculateUsagePeriod;
|
|
7
|
-
const sdk_1 = require("@stigg/api-client-js/src/generated/sdk");
|
|
8
|
-
const dayjs_1 = __importDefault(require("dayjs"));
|
|
9
|
-
function getPeriodUnit(resetPeriod) {
|
|
10
|
-
switch (resetPeriod) {
|
|
11
|
-
case sdk_1.EntitlementResetPeriod.Year:
|
|
12
|
-
return 'years';
|
|
13
|
-
case sdk_1.EntitlementResetPeriod.Month:
|
|
14
|
-
return 'months';
|
|
15
|
-
case sdk_1.EntitlementResetPeriod.Week:
|
|
16
|
-
return 'weeks';
|
|
17
|
-
case sdk_1.EntitlementResetPeriod.Day:
|
|
18
|
-
return 'days';
|
|
19
|
-
case sdk_1.EntitlementResetPeriod.Hour:
|
|
20
|
-
return 'hours';
|
|
21
|
-
default:
|
|
22
|
-
throw new Error('Unsupported reset period');
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function calculateUsagePeriod(usagePeriodAnchor, baseDate, resetPeriod) {
|
|
26
|
-
const now = (0, dayjs_1.default)(baseDate);
|
|
27
|
-
const anchor = (0, dayjs_1.default)(usagePeriodAnchor);
|
|
28
|
-
const period = getPeriodUnit(resetPeriod);
|
|
29
|
-
const numberOfCompletePeriodCycles = Math.floor(now.diff(anchor, period, true));
|
|
30
|
-
const usagePeriodStart = anchor.clone().add(numberOfCompletePeriodCycles, period);
|
|
31
|
-
const usagePeriodEnd = anchor.clone().add(numberOfCompletePeriodCycles + 1, period);
|
|
32
|
-
return {
|
|
33
|
-
usagePeriodStart: usagePeriodStart.toDate(),
|
|
34
|
-
usagePeriodEnd: usagePeriodEnd.toDate(),
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlVXNhZ2VQZXJpb2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY2FsY3VsYXRlVXNhZ2VQZXJpb2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFvQkEsb0RBYUM7QUFqQ0QsZ0VBQWdGO0FBQ2hGLGtEQUE4QztBQUU5QyxTQUFTLGFBQWEsQ0FBQyxXQUFtQztJQUN4RCxRQUFRLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssNEJBQXNCLENBQUMsSUFBSTtZQUM5QixPQUFPLE9BQU8sQ0FBQztRQUNqQixLQUFLLDRCQUFzQixDQUFDLEtBQUs7WUFDL0IsT0FBTyxRQUFRLENBQUM7UUFDbEIsS0FBSyw0QkFBc0IsQ0FBQyxJQUFJO1lBQzlCLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssNEJBQXNCLENBQUMsR0FBRztZQUM3QixPQUFPLE1BQU0sQ0FBQztRQUNoQixLQUFLLDRCQUFzQixDQUFDLElBQUk7WUFDOUIsT0FBTyxPQUFPLENBQUM7UUFDakI7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDaEQsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxpQkFBdUIsRUFBRSxRQUFjLEVBQUUsV0FBbUM7SUFDL0csTUFBTSxHQUFHLEdBQUcsSUFBQSxlQUFLLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBQSxlQUFLLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN4QyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFMUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLDRCQUE0QixHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVwRixPQUFPO1FBQ0wsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1FBQzNDLGNBQWMsRUFBRSxjQUFjLENBQUMsTUFBTSxFQUFFO0tBQ3hDLENBQUM7QUFDSixDQUFDIn0=
|
package/dist/utils/dateUtils.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mapDate = exports.isValidDate = void 0;
|
|
4
|
-
const lodash_1 = require("lodash");
|
|
5
|
-
const isValidDate = (timestamp) => {
|
|
6
|
-
return !(0, lodash_1.isNaN)(new Date(timestamp).getTime());
|
|
7
|
-
};
|
|
8
|
-
exports.isValidDate = isValidDate;
|
|
9
|
-
const mapDate = (date) => {
|
|
10
|
-
return date ? new Date(date) : undefined;
|
|
11
|
-
};
|
|
12
|
-
exports.mapDate = mapDate;
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RhdGVVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBK0I7QUFFeEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxTQUFpQixFQUFXLEVBQUU7SUFDeEQsT0FBTyxDQUFDLElBQUEsY0FBSyxFQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRlcsUUFBQSxXQUFXLGVBRXRCO0FBRUssTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUE2QixFQUFFLEVBQUU7SUFDdkQsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBRlcsUUFBQSxPQUFPLFdBRWxCIn0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReuseOngoingExecution = void 0;
|
|
4
|
-
// This decorator ensures that a function, when invoked with the same arguments,
|
|
5
|
-
// does not execute multiple times simultaneously. Instead, it reuses the promise from the ongoing
|
|
6
|
-
// execution for subsequent calls with the same arguments.
|
|
7
|
-
const ReuseOngoingExecution = (getUniqueKey) => {
|
|
8
|
-
function getOnGoingPromises(target) {
|
|
9
|
-
let onGoingPromises = target._onGoingPromises;
|
|
10
|
-
if (!onGoingPromises) {
|
|
11
|
-
onGoingPromises = new Map();
|
|
12
|
-
target._onGoingPromises = onGoingPromises;
|
|
13
|
-
}
|
|
14
|
-
return onGoingPromises;
|
|
15
|
-
}
|
|
16
|
-
return (_target, propertyKey, descriptor) => {
|
|
17
|
-
const fn = descriptor.value;
|
|
18
|
-
descriptor.value = function decoratedValue(...args) {
|
|
19
|
-
const onGoingPromises = getOnGoingPromises(this);
|
|
20
|
-
const key = `${propertyKey}:${getUniqueKey(...args)}`;
|
|
21
|
-
if (key) {
|
|
22
|
-
const existingPromise = onGoingPromises.get(key);
|
|
23
|
-
if (existingPromise) {
|
|
24
|
-
return existingPromise;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
const result = fn.apply(this, args);
|
|
28
|
-
if (key) {
|
|
29
|
-
const promise = result.finally(() => onGoingPromises.delete(key));
|
|
30
|
-
onGoingPromises.set(key, promise);
|
|
31
|
-
return promise;
|
|
32
|
-
}
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
exports.ReuseOngoingExecution = ReuseOngoingExecution;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmV1c2VPbmdvaW5nRXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2RlY29yYXRvcnMvUmV1c2VPbmdvaW5nRXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLGdGQUFnRjtBQUNoRixrR0FBa0c7QUFDbEcsMERBQTBEO0FBQ25ELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxZQUE0QixFQUFFLEVBQUU7SUFDcEUsU0FBUyxrQkFBa0IsQ0FBQyxNQUE2QjtRQUN2RCxJQUFJLGVBQWUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFFOUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztZQUN0RCxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQVksRUFBRSxXQUFtQixFQUFFLFVBQThCLEVBQUUsRUFBRTtRQUMzRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRTVCLFVBQVUsQ0FBQyxLQUFLLEdBQUcsU0FBUyxjQUFjLENBQUMsR0FBRyxJQUFXO1lBQ3ZELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLElBQTZCLENBQUMsQ0FBQztZQUMxRSxNQUFNLEdBQUcsR0FBRyxHQUFHLFdBQVcsSUFBSSxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBRXRELElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakQsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDcEIsT0FBTyxlQUFlLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFcEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDbEUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFyQ1csUUFBQSxxQkFBcUIseUJBcUNoQyJ9
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { FeatureType, MeterType } from '@stigg/api-client-js/src/generated/sdk';
|
|
2
|
-
type Feature = {
|
|
3
|
-
featureType: FeatureType;
|
|
4
|
-
meterType?: MeterType | null;
|
|
5
|
-
};
|
|
6
|
-
export declare function isMetered(feature?: Feature): boolean;
|
|
7
|
-
export declare function isNumeric(feature?: Feature): boolean;
|
|
8
|
-
export declare function isBoolean(feature?: Feature): boolean;
|
|
9
|
-
export declare function isEnum(feature?: Feature): boolean;
|
|
10
|
-
export {};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isMetered = isMetered;
|
|
4
|
-
exports.isNumeric = isNumeric;
|
|
5
|
-
exports.isBoolean = isBoolean;
|
|
6
|
-
exports.isEnum = isEnum;
|
|
7
|
-
const sdk_1 = require("@stigg/api-client-js/src/generated/sdk");
|
|
8
|
-
const lodash_1 = require("lodash");
|
|
9
|
-
const METERED_TYPES = [sdk_1.MeterType.Incremental, sdk_1.MeterType.Fluctuating];
|
|
10
|
-
function isMetered(feature) {
|
|
11
|
-
return ((feature === null || feature === void 0 ? void 0 : feature.featureType) === sdk_1.FeatureType.Number &&
|
|
12
|
-
!(0, lodash_1.isNil)(feature.meterType) &&
|
|
13
|
-
METERED_TYPES.includes(feature.meterType));
|
|
14
|
-
}
|
|
15
|
-
function isNumeric(feature) {
|
|
16
|
-
return ((feature === null || feature === void 0 ? void 0 : feature.featureType) === sdk_1.FeatureType.Number && ((0, lodash_1.isNil)(feature.meterType) || feature.meterType == sdk_1.MeterType.None));
|
|
17
|
-
}
|
|
18
|
-
function isBoolean(feature) {
|
|
19
|
-
return (feature === null || feature === void 0 ? void 0 : feature.featureType) === sdk_1.FeatureType.Boolean;
|
|
20
|
-
}
|
|
21
|
-
function isEnum(feature) {
|
|
22
|
-
return (feature === null || feature === void 0 ? void 0 : feature.featureType) === sdk_1.FeatureType.Enum;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ZlYXR1cmVUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLDhCQU1DO0FBRUQsOEJBSUM7QUFFRCw4QkFFQztBQUVELHdCQUVDO0FBOUJELGdFQUFnRjtBQUNoRixtQ0FBK0I7QUFPL0IsTUFBTSxhQUFhLEdBQUcsQ0FBQyxlQUFTLENBQUMsV0FBVyxFQUFFLGVBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUVyRSxTQUFnQixTQUFTLENBQUMsT0FBaUI7SUFDekMsT0FBTyxDQUNMLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFdBQVcsTUFBSyxpQkFBVyxDQUFDLE1BQU07UUFDM0MsQ0FBQyxJQUFBLGNBQUssRUFBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3pCLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUMxQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLFNBQVMsQ0FBQyxPQUFpQjtJQUN6QyxPQUFPLENBQ0wsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxNQUFLLGlCQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBQSxjQUFLLEVBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksZUFBUyxDQUFDLElBQUksQ0FBQyxDQUNqSCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLFNBQVMsQ0FBQyxPQUFpQjtJQUN6QyxPQUFPLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFdBQVcsTUFBSyxpQkFBVyxDQUFDLE9BQU8sQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBZ0IsTUFBTSxDQUFDLE9BQWlCO0lBQ3RDLE9BQU8sQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxNQUFLLGlCQUFXLENBQUMsSUFBSSxDQUFDO0FBQ25ELENBQUMifQ==
|