@stigg/node-server-sdk 1.4.0 → 1.6.0
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 +2 -2
- package/dist/models.d.ts +1 -0
- package/dist/models.js +1 -1
- package/dist/services/cache/cacheService.d.ts +2 -2
- package/dist/services/cache/cachedEntitlement.d.ts +1 -0
- package/dist/services/cache/cachedEntitlement.js +1 -1
- package/dist/services/cache/inMemoryCacheService.d.ts +1 -1
- package/dist/services/cache/inMemoryCacheService.js +2 -2
- package/dist/services/cache/redisCacheService.d.ts +2 -4
- package/dist/services/cache/redisCacheService.js +30 -28
- package/dist/services/entitlementsService.d.ts +2 -2
- package/dist/services/entitlementsService.js +1 -1
- package/dist/services/inMemoryEntitlementsService.js +2 -2
- package/dist/services/redisEntitlementsService.d.ts +1 -1
- package/dist/services/redisEntitlementsService.js +7 -5
- package/dist/utils/CacheMapper.js +2 -1
- package/dist/utils/ModelMapper.js +1 -1
- package/dist/utils/cacheKeysHelpers.d.ts +4 -2
- package/dist/utils/cacheKeysHelpers.js +23 -7
- package/package.json +2 -2
package/dist/client.js
CHANGED
|
@@ -179,7 +179,7 @@ class Stigg {
|
|
|
179
179
|
if (!customerId || typeof customerId !== 'string') {
|
|
180
180
|
throw new Error('Invalid argument: customerId');
|
|
181
181
|
}
|
|
182
|
-
return this.entitlementsService.getCustomerEntitlementsWithUsage(customerId, resourceId
|
|
182
|
+
return this.entitlementsService.getCustomerEntitlementsWithUsage(customerId, resourceId);
|
|
183
183
|
}, this.loggerService, {
|
|
184
184
|
customerId,
|
|
185
185
|
sdkConfiguration: this.sdkConfiguration,
|
|
@@ -561,4 +561,4 @@ class Stigg {
|
|
|
561
561
|
}
|
|
562
562
|
}
|
|
563
563
|
exports.Stigg = Stigg;
|
|
564
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FtQ2tCO0FBQ2xCLHFEQUFrRDtBQUdsRCxtREFBK0Y7QUFDL0YsNERBQXlEO0FBQ3pELHNFQUFtRTtBQUNuRSwrREFBNkQ7QUFFN0QsNERBQXNEO0FBQ3RELG1DQUF1QztBQUN2QyxnRUFBdUc7QUFDdkcsc0ZBQW1GO0FBRW5GLGlFQUFvRTtBQUNwRSxtRkFBZ0Y7QUE2QmhGLElBQUksYUFBYSxHQUFpQixJQUFJLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxNQUFhLEtBQUs7SUFJaEIsWUFDbUIsZ0JBQXFELEVBQ3JELG1CQUF3QyxFQUN4QyxhQUE0QixFQUM1QixhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsWUFBK0I7UUFML0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQztRQUNyRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBRWhELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSx5QkFBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksdURBQTBCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLHdCQUF3QixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUF1QixTQUFZLEVBQUUsUUFBbUI7UUFDakUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUF1QixTQUFZLEVBQUUsUUFBbUI7UUFDcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFrQztRQUNsRCxNQUFNLGdCQUFnQixHQUFHLElBQUEsZ0NBQWdCLEVBQUMsYUFBYSxDQUFDLENBQUM7UUFDekQsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLElBQUEsZ0JBQU8sRUFBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxNQUFNLGFBQWEsR0FBRyxJQUFJLDZCQUFhLENBQ3JDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFDeEMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUMzQyxDQUFDO1FBRUYsSUFBSSxhQUFhLEVBQUU7WUFDakIsYUFBYSxDQUFDLEtBQUssQ0FBQyx3RkFBd0YsQ0FBQyxDQUFDO1lBQzlHLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO1FBRUQsSUFBQSxxQ0FBcUIsRUFBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFcEQsYUFBYSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUV2RyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQzthQUM5QixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLDBCQUEwQixDQUFDLGlCQUFpQixFQUFFLENBQUM7YUFDekUsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsMEJBQTBCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVuRixJQUFJLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFO1lBQzNDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMxQztRQUVELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sTUFBTSxDQUFDLHVCQUF1QixDQUNwQyxnQkFBK0MsRUFDL0MsYUFBNEIsRUFDNUIsdUJBQWdDO1FBRWhDLE1BQU0sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsSUFBQSxpREFBMEIsRUFDMUcsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixhQUFhLENBQ2QsQ0FBQztRQUVGLE9BQU8sSUFBSSxLQUFLLENBQ2QsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFZOztRQUM3QyxJQUFJO1lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2hGLE1BQU0sU0FBUyxHQUFHLE1BQUEsaUJBQWlCLENBQUMsSUFBSSwwQ0FBRSxnQkFBZ0IsQ0FBQztZQUMzRCxJQUFJLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxTQUFTLEVBQUU7Z0JBQ3hCLEtBQUssSUFBQSwwQkFBVSxFQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN0QztTQUNGO1FBQUMsT0FBTyxLQUFVLEVBQUU7WUFDbkIsSUFDRSxDQUFBLE1BQUEsS0FBSyxDQUFDLFFBQVEsMENBQUUsTUFBTSxNQUFLLEdBQUc7Z0JBQzlCLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxDQUFBLE1BQUEsTUFBQSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxVQUFVLDBDQUFFLElBQUksTUFBSyxlQUFTLENBQUMsZUFBZSxDQUFDLEVBQy9GO2dCQUNBLE1BQU0sWUFBWSxHQUFHLG1EQUFtRCxDQUFDO2dCQUN6RSxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0YsTUFBTSxLQUFLLENBQUM7YUFDYjtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEVBQzFCLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE9BQU8sR0FDZTs7UUFDdEIsTUFBTSxhQUFhLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxNQUFJLE1BQUEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQiwwQ0FBRyxTQUFTLENBQUMsQ0FBQSxJQUFJLEVBQUUsQ0FBQztRQUN6RyxNQUFNLG1CQUFtQixtQ0FDcEIsNkNBQW9DLEdBQ3BDLGFBQWEsQ0FDakIsQ0FBQztRQUVGLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBQSxvQ0FBaUIsRUFDekMsR0FBRyxFQUFFLENBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUNqSCxJQUFJLENBQUMsYUFBYSxFQUNsQjtZQUNFLFVBQVU7WUFDVixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRTtZQUMzQyxrQkFBa0IsRUFBRSwrREFBK0Q7WUFDbkYsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FDRixDQUFDO1FBRUYsT0FBTyxXQUFXLElBQUksbUJBQW1CLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMscUJBQXFCLENBQUMsRUFDMUIsVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxHQUNlOztRQUN0QixNQUFNLGFBQWEsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLE1BQUksTUFBQSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLDBDQUFHLFNBQVMsQ0FBQyxDQUFBLElBQUksRUFBRSxDQUFDO1FBQ3pHLE1BQU0sbUJBQW1CLG1DQUNwQiw2Q0FBb0MsR0FDcEMsYUFBYSxDQUNqQixDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFBLG9DQUFpQixFQUN6QyxHQUFHLEVBQUUsQ0FDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQ2pILElBQUksQ0FBQyxhQUFhLEVBQ2xCO1lBQ0UsVUFBVTtZQUNWLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsbUJBQW1CLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO1lBQzNDLGtCQUFrQixFQUFFLCtEQUErRDtZQUNuRixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUNGLENBQUM7UUFFRixPQUFPLFdBQVcsSUFBSSxtQkFBbUIsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxFQUMxQixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixPQUFPLEdBQ2U7O1FBQ3RCLE1BQU0sYUFBYSxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFFBQVEsTUFBSSxNQUFBLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsMENBQUcsU0FBUyxDQUFDLENBQUEsSUFBSSxFQUFFLENBQUM7UUFDekcsTUFBTSxtQkFBbUIsbUNBQ3BCLDZDQUFvQyxHQUNwQyxhQUFhLENBQ2pCLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUEsb0NBQWlCLEVBQ3pDLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFDakgsSUFBSSxDQUFDLGFBQWEsRUFDbEI7WUFDRSxVQUFVO1lBQ1YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxtQkFBbUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUU7WUFDM0Msa0JBQWtCLEVBQUUsK0RBQStEO1lBQ25GLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQ0YsQ0FBQztRQUVGLE9BQU8sV0FBVyxJQUFJLG1CQUFtQixDQUFDO0lBQzVDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxVQUFrQixFQUFFLFVBQW1CO1FBQzNELE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBQSxvQ0FBaUIsRUFDMUMsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7Z0JBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQzthQUNqRDtZQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdDQUFnQyxDQUFDLFVBQVUsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLENBQUM7UUFDbkcsQ0FBQyxFQUNELElBQUksQ0FBQyxhQUFhLEVBQ2xCO1lBQ0UsVUFBVTtZQUNWLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsa0JBQWtCLEVBQUUscUNBQXFDO1lBQ3pELFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQ0YsQ0FBQztRQUVGLE9BQU8sWUFBWSxJQUFJLElBQUEsdURBQTBCLEVBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWU7UUFDekUsT0FBTyxJQUFBLG9DQUFpQixFQUN0QixLQUFLLElBQUksRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDckUsU0FBUztnQkFDVCxVQUFVO2dCQUNWLFVBQVU7Z0JBQ1YsS0FBSzthQUNOLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUUvQyxNQUFNLEVBQ0osc0JBQXNCLEVBQUUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxHQUNuRSxHQUFHLElBQUksQ0FBQztZQUVULElBQUksWUFBWSxFQUFFO2dCQUNoQixNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDaEQsVUFBVTtvQkFDVixTQUFTO29CQUNULFlBQVk7b0JBQ1osVUFBVTtvQkFDVixhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztvQkFDNUUsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztpQkFDL0IsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxFQUNELElBQUksQ0FBQyxhQUFhLEVBQ2xCO1lBQ0UsVUFBVTtZQUNWLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsbUJBQW1CLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFO1lBQ3pDLGtCQUFrQixFQUFFLHdCQUF3QjtZQUM1QyxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBa0I7UUFDbkYsT0FBTyxJQUFBLG9DQUFpQixFQUN0QixLQUFLLElBQUksRUFBRTtZQUNULE1BQU0sS0FBSyxHQUFHLFVBQVUsSUFBSSxZQUFZLElBQUEsdUNBQWtCLEdBQUUsRUFBRSxDQUFDO1lBQy9ELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDO2dCQUN2RCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsSUFBSTtnQkFDSixTQUFTO2dCQUNULGtCQUFrQixFQUFFLFFBQVE7YUFDN0IsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLElBQUk7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRS9DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9ELENBQUMsRUFDRCxJQUFJLENBQUMsYUFBYSxFQUNsQjtZQUNFLFVBQVU7WUFDVixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0Msa0JBQWtCLEVBQUUsMkJBQTJCO1lBQy9DLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUN0QixVQUFVLEVBQ1YsS0FBSyxFQUNMLElBQUksRUFDSixXQUFXLEVBQ1gsUUFBUSxFQUNSLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLHFCQUFxQixHQUNIO1FBQ2xCLE9BQU8sSUFBQSxvQ0FBaUIsRUFDdEIsS0FBSyxJQUFJLEVBQUU7WUFDVCxNQUFNLHlCQUF5QixHQUFtRCxrQkFBa0I7Z0JBQ2xHLENBQUMsaUNBQ00sSUFBQSxhQUFJLEVBQUMsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQyxLQUN2RCxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQy9DLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLElBRXBELENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFZCxNQUFNLEtBQUssR0FBRyxVQUFVLElBQUksWUFBWSxJQUFBLHVDQUFrQixHQUFFLEVBQUUsQ0FBQztZQUMvRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO2dCQUMxRCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsSUFBSTtnQkFDSixrQkFBa0IsRUFBRSxXQUFXO2dCQUMvQixrQkFBa0IsRUFBRSxRQUFRO2dCQUM1QixXQUFXLEVBQUUsUUFBUTtnQkFDckIsa0JBQWtCLEVBQUUseUJBQXlCO2dCQUM3QyxjQUFjO2dCQUNkLHFCQUFxQjthQUN0QixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsSUFBSTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFFL0MsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRWhFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxDQUFDLEVBQ0QsSUFBSSxDQUFDLGFBQWEsRUFDbEI7WUFDRSxVQUFVO1lBQ1YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxtQkFBbUIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7WUFDekYsa0JBQWtCLEVBQUUsOEJBQThCO1lBQ2xELFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLHFCQUFxQixDQUFDLHFCQUE0QztRQUN0RSxPQUFPLElBQUEsb0NBQWlCLEVBQ3RCLEtBQUssSUFBSSxFQUFFO1lBQ1QsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBRXZGLElBQUksQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUUvQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFM0YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLENBQUMsRUFDRCxJQUFJLENBQUMsYUFBYSxFQUNsQjtZQUNFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsbUJBQW1CLEVBQUUsRUFBRSxxQkFBcUIsRUFBRTtZQUM5QyxrQkFBa0IsRUFBRSxrQ0FBa0M7WUFDdEQsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFxQjtRQUN4QyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsaUNBQ3hDLEtBQUssS0FDUixrQkFBa0IsRUFBRSxJQUFJLElBQ3hCLENBQUM7UUFFSCxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUNuQixVQUFVLEVBQ1YsS0FBSyxFQUNMLElBQUksRUFDSixXQUFXLEVBQ1gsUUFBUSxFQUNSLFFBQVEsR0FDTztRQUNmLE9BQU8sSUFBQSxvQ0FBaUIsRUFDdEIsS0FBSyxJQUFJLEVBQUU7WUFDVCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztnQkFDdkQsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLEtBQUs7Z0JBQ0wsSUFBSTtnQkFDSixXQUFXLEVBQUUsUUFBUTtnQkFDckIsa0JBQWtCLEVBQUUsV0FBVztnQkFDL0Isa0JBQWtCLEVBQUUsUUFBUTthQUM3QixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsSUFBSTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFFL0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxFQUNELElBQUksQ0FBQyxhQUFhLEVBQ2xCO1lBQ0UsVUFBVTtZQUNWLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsbUJBQW1CLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO1lBQ3JFLGtCQUFrQixFQUFFLDJCQUEyQjtZQUMvQyxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBa0I7UUFDbEMsT0FBTyxJQUFBLG9DQUFpQixFQUN0QixLQUFLLElBQUksRUFBRTtZQUNULElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFO2dCQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7YUFDakQ7WUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDOUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDYixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7YUFDdkM7WUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUMsRUFDRCxJQUFJLENBQUMsYUFBYSxFQUNsQjtZQUNFLFVBQVU7WUFDVixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLGtCQUFrQixFQUFFLHdCQUF3QjtZQUM1QyxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsa0JBQXNDO1FBQzdELE9BQU8sSUFBQSxvQ0FBaUIsRUFDdEIsS0FBSyxJQUFJLEVBQUU7WUFDVCxNQUFNLHVCQUF1QixtQ0FDeEIsa0JBQWtCLEtBQ3JCLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLElBQUksSUFBSSxJQUFJLEVBQUUsR0FDdEQsQ0FBQztZQUVGLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUV0RixJQUFJLENBQUMsSUFBSTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFFL0MsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRXhGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2RSxDQUFDLEVBQ0QsSUFBSSxDQUFDLGFBQWEsRUFDbEI7WUFDRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLG1CQUFtQixFQUFFLEVBQUUsa0JBQWtCLEVBQUU7WUFDM0Msa0JBQWtCLEVBQUUsK0JBQStCO1lBQ25ELFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFzQztRQUM3RCxPQUFPLElBQUEsb0NBQWlCLEVBQ3RCLEtBQUssSUFBSSxFQUFFO1lBQ1QsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRWpGLElBQUksQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUUvQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVqRyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkUsQ0FBQyxFQUNELElBQUksQ0FBQyxhQUFhLEVBQ2xCO1lBQ0UsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxtQkFBbUIsRUFBRSxFQUFFLGtCQUFrQixFQUFFO1lBQzNDLGtCQUFrQixFQUFFLCtCQUErQjtZQUNuRCxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBc0M7UUFDN0QsT0FBTyxJQUFBLG9DQUFpQixFQUN0QixLQUFLLElBQUksRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUVqRixJQUFJLENBQUMsSUFBSTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFFL0MsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFakcsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsRUFDRCxJQUFJLENBQUMsYUFBYSxFQUNsQjtZQUNFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsbUJBQW1CLEVBQUUsRUFBRSxrQkFBa0IsRUFBRTtZQUMzQyxrQkFBa0IsRUFBRSwrQkFBK0I7WUFDbkQsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGdCQUFrQztRQUN2RCxPQUFPLElBQUEsb0NBQWlCLEVBQ3RCLEtBQUssSUFBSSxFQUFFO1lBQ1QsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTdFLElBQUksQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUUvQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdELENBQUMsRUFDRCxJQUFJLENBQUMsYUFBYSxFQUNsQjtZQUNFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsbUJBQW1CLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRTtZQUN6QyxrQkFBa0IsRUFBRSwwQkFBMEI7WUFDOUMsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsdUJBQXVCLE1BQ1QsRUFBRTtRQUNoQixNQUFNLE1BQU0sR0FBb0I7WUFDOUIsU0FBUztZQUNULFVBQVU7WUFDVixrQkFBa0I7WUFDbEIsdUJBQXVCO1NBQ3hCLENBQUM7UUFFRixPQUFPLElBQUEsb0NBQWlCLEVBQ3RCLEtBQUssSUFBSSxFQUFFO1lBQ1QsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxDQUFDLEVBQ0QsSUFBSSxDQUFDLGFBQWEsRUFDbEI7WUFDRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxFQUFFO1lBQ2xDLGtCQUFrQixFQUFFLHVCQUF1QjtZQUMzQyxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxVQUFVO1FBQ2QsT0FBTyxJQUFBLG9DQUFpQixFQUN0QixLQUFLLElBQUksRUFBRTtZQUNULE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxDQUFDLEVBQ0QsSUFBSSxDQUFDLGFBQWEsRUFDbEIsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUM3RyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVztRQUNmLE9BQU8sSUFBQSxvQ0FBaUIsRUFDdEIsS0FBSyxJQUFJLEVBQUU7WUFDVCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsQ0FBQyxFQUNELElBQUksQ0FBQyxhQUFhLEVBQ2xCLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FDOUcsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLG9CQUFvQixDQUFDLG9CQUEwQztRQUNuRSxPQUFPLElBQUEsb0NBQWlCLEVBQ3RCLEtBQUssSUFBSSxFQUFFO1lBQ1QsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBRXJGLElBQUksQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUUvQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDNUUsQ0FBQyxFQUNELElBQUksQ0FBQyxhQUFhLEVBQ2xCO1lBQ0UsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxtQkFBbUIsRUFBRSxFQUFFLG9CQUFvQixFQUFFO1lBQzdDLGtCQUFrQixFQUFFLGlDQUFpQztZQUNyRCxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQywwQkFBMEIsQ0FDOUIsMEJBQXNEO1FBRXRELE9BQU8sSUFBQSxvQ0FBaUIsRUFDdEIsS0FBSyxJQUFJLEVBQUU7WUFDVCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFFakcsSUFBSSxDQUFDLElBQUk7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRS9DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNsRixDQUFDLEVBQ0QsSUFBSSxDQUFDLGFBQWEsRUFDbEI7WUFDRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLG1CQUFtQixFQUFFLEVBQUUsMEJBQTBCLEVBQUU7WUFDbkQsa0JBQWtCLEVBQUUsaUNBQWlDO1lBQ3JELFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGtDQUFrQyxDQUN0QyxrQ0FBc0U7UUFFdEUsT0FBTyxJQUFBLG9DQUFpQixFQUN0QixLQUFLLElBQUksRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsa0NBQWtDLENBQzFFLGtDQUFrQyxDQUNuQyxDQUFDO1lBRUYsSUFBSSxDQUFDLElBQUk7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pELENBQUMsRUFDRCxJQUFJLENBQUMsYUFBYSxFQUNsQjtZQUNFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsbUJBQW1CLEVBQUUsRUFBRSxrQ0FBa0MsRUFBRTtZQUMzRCxrQkFBa0IsRUFBRSxpREFBaUQ7WUFDckUsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcndCRCxzQkFxd0JDIn0=
|
|
564
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FtQ2tCO0FBQ2xCLHFEQUFrRDtBQUdsRCxtREFBK0Y7QUFDL0YsNERBQXlEO0FBQ3pELHNFQUFtRTtBQUNuRSwrREFBNkQ7QUFFN0QsNERBQXNEO0FBQ3RELG1DQUF1QztBQUN2QyxnRUFBdUc7QUFDdkcsc0ZBQW1GO0FBRW5GLGlFQUFvRTtBQUNwRSxtRkFBZ0Y7QUE2QmhGLElBQUksYUFBYSxHQUFpQixJQUFJLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxNQUFhLEtBQUs7SUFJaEIsWUFDbUIsZ0JBQXFELEVBQ3JELG1CQUF3QyxFQUN4QyxhQUE0QixFQUM1QixhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsWUFBK0I7UUFML0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQztRQUNyRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBRWhELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSx5QkFBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksdURBQTBCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLHdCQUF3QixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUF1QixTQUFZLEVBQUUsUUFBbUI7UUFDakUsSUFBSSxDQUFDLFlBQVksQ0FB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
|
package/dist/models.d.ts
CHANGED
|
@@ -316,6 +316,7 @@ export declare type BillingInfo = {
|
|
|
316
316
|
taxIds?: TaxExempt[];
|
|
317
317
|
invoiceCustomFields?: Record<string, string>;
|
|
318
318
|
paymentMethodId?: string;
|
|
319
|
+
customerName?: string;
|
|
319
320
|
};
|
|
320
321
|
/**
|
|
321
322
|
* @param country - optional country of the address - in a valid ISO 3166-1 alpha-2 format
|
package/dist/models.js
CHANGED
|
@@ -88,4 +88,4 @@ class CustomerModel {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
exports.CustomerModel = CustomerModel;
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxnRUFhZ0Q7QUFFaEQsOERBaUJnRDtBQWhCOUMsa0dBQUEsV0FBVyxPQUFBO0FBQ1gsZ0dBQUEsU0FBUyxPQUFBO0FBQ1Qsb0dBQUEsYUFBYSxPQUFBO0FBQ2IsbUhBQUEsNEJBQTRCLE9BQUE7QUFHNUIsMEdBQUEsbUJBQW1CLE9BQUE7QUFDbkIsbUhBQUEsNEJBQTRCLE9BQUE7QUFDNUIseUdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsdUdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsbUdBQUEsWUFBWSxPQUFBO0FBQ1osbUhBQUEsNEJBQTRCLE9BQUE7QUFDNUIsK0ZBQUEsUUFBUSxPQUFBO0FBQ1IsbUdBQUEsWUFBWSxPQUFBO0FBQ1osMkdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsaUdBQUEsVUFBVSxPQUFBO0FBT1osSUFBWSxzQkFLWDtBQUxELFdBQVksc0JBQXNCO0lBQ2hDLHlDQUFlLENBQUE7SUFDZiwyQ0FBaUIsQ0FBQTtJQUNqQiw2Q0FBbUIsQ0FBQTtJQUNuQiwyQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsc0JBQXNCLEdBQXRCLDhCQUFzQixLQUF0Qiw4QkFBc0IsUUFLakM7QUFFRCxJQUFZLGtCQVFYO0FBUkQsV0FBWSxrQkFBa0I7SUFDNUIsK0RBQXlDLENBQUE7SUFDekMsMkRBQXFDLENBQUE7SUFDckMseURBQW1DLENBQUE7SUFDbkMscUVBQStDLENBQUE7SUFDL0MscUZBQStELENBQUE7SUFDL0QsK0VBQXlELENBQUE7SUFDekQseUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVJXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBUTdCO0FBRUQsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLGtDQUFtQixDQUFBO0lBQ25CLGtDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQUd0QjtBQUVELElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNuQix3Q0FBMkIsQ0FBQTtJQUMzQix3Q0FBMkIsQ0FBQTtJQUMzQiwwQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBSXBCO0FBZ0RELGdCQUFnQjtBQUNILFFBQUEsb0NBQW9DLEdBQXVCO0lBQ3RFLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLE9BQU87Q0FDL0MsQ0FBQztBQUVGLGdCQUFnQjtBQUNILFFBQUEsb0NBQW9DLEdBQXVCO0lBQ3RFLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLE9BQU87Q0FDL0MsQ0FBQztBQUVGLGdCQUFnQjtBQUNILFFBQUEsb0NBQW9DLEdBQXVCO0lBQ3RFLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFlBQVksRUFBRSxDQUFDO0lBQ2YsY0FBYyxFQUFFLENBQUM7SUFDakIsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsT0FBTztDQUMvQyxDQUFDO0FBdUtGLElBQVksMkJBR1g7QUFIRCxXQUFZLDJCQUEyQjtJQUNyQyxrRUFBbUMsQ0FBQTtJQUNuQyxrREFBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsMkJBQTJCLEdBQTNCLG1DQUEyQixLQUEzQixtQ0FBMkIsUUFHdEM7QUFzV0QsY0FBYztBQUNkLE1BQWEsYUFBYTtJQVN4QixZQUFZLEtBQW9CO1FBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyx3QkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssd0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELGdDQUFnQztRQUM5QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssa0NBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEcsQ0FBQztDQUNGO0FBeEJELHNDQXdCQyJ9
|
|
@@ -5,12 +5,12 @@ export declare type UpdateFeatureUsagePayload = {
|
|
|
5
5
|
currentUsage: number;
|
|
6
6
|
environmentPrefix: string;
|
|
7
7
|
timestamp: Date;
|
|
8
|
-
resourceId
|
|
8
|
+
resourceId: string | undefined;
|
|
9
9
|
nextResetDate?: number;
|
|
10
10
|
};
|
|
11
11
|
export interface CacheService {
|
|
12
12
|
clearCache(): void | Promise<void>;
|
|
13
13
|
setCustomer(environmentPrefix: string, customerId: string, customerEntitlements: Map<string, CachedEntitlement>, entitlementsTimestamp: number, usageTimestamp: Map<string, number>): void | Promise<void>;
|
|
14
14
|
updateFeatureUsage(payload: UpdateFeatureUsagePayload): boolean | Promise<boolean>;
|
|
15
|
-
getCustomerEntitlements(environmentPrefix: string, customerId: string): Map<string, CachedEntitlement> |
|
|
15
|
+
getCustomerEntitlements(environmentPrefix: string, customerId: string): Map<string, CachedEntitlement> | Promise<Map<string, CachedEntitlement> | null> | null;
|
|
16
16
|
}
|
|
@@ -2,6 +2,7 @@ import { EntitlementFeature, EntitlementResetPeriod } from '../../models';
|
|
|
2
2
|
import { ResetPeriodConfigurationFragment } from '@stigg/api-client-js/src/generated/sdk';
|
|
3
3
|
export interface CalculatedEntitlement {
|
|
4
4
|
feature?: EntitlementFeature;
|
|
5
|
+
resourceId?: string;
|
|
5
6
|
usageLimit?: number | null;
|
|
6
7
|
hasUnlimitedUsage: boolean;
|
|
7
8
|
}
|
|
@@ -7,4 +7,4 @@ class CachedEntitlement {
|
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
exports.default = CachedEntitlement;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkRW50aXRsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvY2FjaGVkRW50aXRsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsTUFBcUIsaUJBQWlCO0lBSXBDLFlBQVkscUJBQTRDLEVBQUUsWUFBMEI7UUFDbEYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQVJELG9DQVFDIn0=
|
|
@@ -5,6 +5,6 @@ export declare class InMemoryCacheService implements CacheService {
|
|
|
5
5
|
constructor();
|
|
6
6
|
clearCache: () => void;
|
|
7
7
|
setCustomer(environmentPrefix: string, customerId: string, customerEntitlements: Map<string, CachedEntitlement>): void;
|
|
8
|
-
getCustomerEntitlements(
|
|
8
|
+
getCustomerEntitlements(environmentPrefix: string, customerId: string): Map<string, CachedEntitlement> | Promise<Map<string, CachedEntitlement> | null> | null;
|
|
9
9
|
updateFeatureUsage({ customerId, featureId, currentUsage, resourceId, nextResetDate, }: UpdateFeatureUsagePayload): boolean | Promise<boolean>;
|
|
10
10
|
}
|
|
@@ -12,7 +12,7 @@ class InMemoryCacheService {
|
|
|
12
12
|
setCustomer(environmentPrefix, customerId, customerEntitlements) {
|
|
13
13
|
this.entitlements.set(customerId, customerEntitlements);
|
|
14
14
|
}
|
|
15
|
-
getCustomerEntitlements(
|
|
15
|
+
getCustomerEntitlements(environmentPrefix, customerId) {
|
|
16
16
|
return this.entitlements.get(customerId) || null;
|
|
17
17
|
}
|
|
18
18
|
updateFeatureUsage({ customerId, featureId, currentUsage, resourceId, nextResetDate, }) {
|
|
@@ -32,4 +32,4 @@ class InMemoryCacheService {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
exports.InMemoryCacheService = InMemoryCacheService;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5NZW1vcnlDYWNoZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvaW5NZW1vcnlDYWNoZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsbUVBQTZEO0FBSzdELE1BQWEsb0JBQW9CO0lBRS9CO1FBSUEsZUFBVSxHQUFHLEdBQUcsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQztRQUxBLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQTBDLENBQUM7SUFDeEUsQ0FBQztJQU1ELFdBQVcsQ0FDVCxpQkFBeUIsRUFDekIsVUFBa0IsRUFDbEIsb0JBQW9EO1FBRXBELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCx1QkFBdUIsQ0FDckIsaUJBQXlCLEVBQ3pCLFVBQWtCO1FBRWxCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ25ELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxFQUNqQixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsYUFBYSxHQUNhO1FBQzFCLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQ0FBYSxFQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RCxNQUFNLDBCQUEwQixHQUFHLG9CQUFvQixhQUFwQixvQkFBb0IsdUJBQXBCLG9CQUFvQixDQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6RSxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUN4RCxrRkFBa0Y7WUFDbEYsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsR0FBRywwQkFBMEIsQ0FBQztRQUVqRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ25DLHFCQUFxQjtZQUNyQixZQUFZLGtDQUFPLG9CQUFvQixLQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxHQUFFO1NBQ3RGLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBbERELG9EQWtEQyJ9
|
|
@@ -9,14 +9,12 @@ export declare class RedisCacheService implements CacheService {
|
|
|
9
9
|
private readonly redisClient;
|
|
10
10
|
private readonly redlock;
|
|
11
11
|
constructor(options: StiggRedisOptions, loggerService: LoggerService);
|
|
12
|
-
updateFeatureUsage({ featureId, currentUsage, customerId, nextResetDate, environmentPrefix, timestamp, }: UpdateFeatureUsagePayload): Promise<boolean>;
|
|
12
|
+
updateFeatureUsage({ featureId, currentUsage, customerId, nextResetDate, environmentPrefix, resourceId, timestamp, }: UpdateFeatureUsagePayload): Promise<boolean>;
|
|
13
13
|
setCustomer(environmentPrefix: string, customerId: string, customerEntitlements: Map<string, CachedEntitlement>, entitlementsTimestamp: number, featureIdToUsageTimestamp: Map<string, number>): Promise<void>;
|
|
14
14
|
getCustomerEntitlements(environmentPrefix: string, customerId: string): Promise<Map<string, CachedEntitlement> | null>;
|
|
15
15
|
getCustomerEntitlementsWithUsage(environmentPrefix: string, customerId: string): Promise<Map<string, CachedEntitlement> | null>;
|
|
16
|
-
getFeatureUsage(environmentPrefix: string, customerId: string, featureId: string): Promise<string | null>;
|
|
16
|
+
getFeatureUsage(environmentPrefix: string, customerId: string, featureId: string, resourceId: string | undefined): Promise<string | null>;
|
|
17
17
|
private getFeaturesUsage;
|
|
18
18
|
clearCache(): void | Promise<void>;
|
|
19
|
-
private buildCustomerKey;
|
|
20
|
-
private buildUsageKey;
|
|
21
19
|
private updateKey;
|
|
22
20
|
}
|
|
@@ -8,6 +8,7 @@ const ioredis_1 = __importDefault(require("ioredis"));
|
|
|
8
8
|
const lodash_1 = require("lodash");
|
|
9
9
|
const sdk_1 = require("@stigg/api-client-js/src/generated/sdk");
|
|
10
10
|
const redlock_1 = __importDefault(require("redlock"));
|
|
11
|
+
const cacheKeysHelpers_1 = require("../../utils/cacheKeysHelpers");
|
|
11
12
|
const TIMESTAMP_SUFFIX = 'timestamp';
|
|
12
13
|
const LOCK_DURATION = 5000;
|
|
13
14
|
const DEFAULT_TTL_SECS = 7 * 24 * 60 * 60;
|
|
@@ -20,8 +21,8 @@ class RedisCacheService {
|
|
|
20
21
|
this.ttl = options.ttl || DEFAULT_TTL_SECS;
|
|
21
22
|
this.redlock.on('clientError', (err) => this.loggerService.error('Redis client ran into an issue: ', err));
|
|
22
23
|
}
|
|
23
|
-
async updateFeatureUsage({ featureId, currentUsage, customerId, nextResetDate, environmentPrefix, timestamp, }) {
|
|
24
|
-
const entitlementUsageKey =
|
|
24
|
+
async updateFeatureUsage({ featureId, currentUsage, customerId, nextResetDate, environmentPrefix, resourceId, timestamp, }) {
|
|
25
|
+
const entitlementUsageKey = (0, cacheKeysHelpers_1.buildUsageKey)(environmentPrefix, customerId, featureId, resourceId);
|
|
25
26
|
const usageValue = {
|
|
26
27
|
currentUsage,
|
|
27
28
|
nextResetDate,
|
|
@@ -30,7 +31,7 @@ class RedisCacheService {
|
|
|
30
31
|
return true;
|
|
31
32
|
}
|
|
32
33
|
async setCustomer(environmentPrefix, customerId, customerEntitlements, entitlementsTimestamp, featureIdToUsageTimestamp) {
|
|
33
|
-
const entitlementsDbKey =
|
|
34
|
+
const entitlementsDbKey = (0, cacheKeysHelpers_1.buildCustomerKey)(environmentPrefix, customerId);
|
|
34
35
|
const customerEntitlementsAsObject = Object.fromEntries(customerEntitlements);
|
|
35
36
|
await this.redlock.using([`${environmentPrefix}-${customerId}`], LOCK_DURATION, async () => {
|
|
36
37
|
await this.updateKey(new Date(entitlementsTimestamp), entitlementsDbKey, customerEntitlementsAsObject);
|
|
@@ -44,12 +45,12 @@ class RedisCacheService {
|
|
|
44
45
|
.map((entitlement) => {
|
|
45
46
|
var _a;
|
|
46
47
|
try {
|
|
47
|
-
const { calculatedEntitlement: { feature }, featureUsage: { currentUsage, nextResetDate }, } = entitlement;
|
|
48
|
+
const { calculatedEntitlement: { feature, resourceId }, featureUsage: { currentUsage, nextResetDate }, } = entitlement;
|
|
48
49
|
if ((0, lodash_1.isEmpty)(feature === null || feature === void 0 ? void 0 : feature.id)) {
|
|
49
50
|
throw new Error(`Customer ${customerId} has an entitlement without feature data`);
|
|
50
51
|
}
|
|
51
52
|
const featureId = feature.id;
|
|
52
|
-
const featureUsageTimestamp = featureIdToUsageTimestamp.get(featureId);
|
|
53
|
+
const featureUsageTimestamp = featureIdToUsageTimestamp.get((0, cacheKeysHelpers_1.buildCacheKey)(featureId, resourceId));
|
|
53
54
|
if (featureUsageTimestamp) {
|
|
54
55
|
return this.updateFeatureUsage({
|
|
55
56
|
featureId,
|
|
@@ -58,6 +59,7 @@ class RedisCacheService {
|
|
|
58
59
|
currentUsage,
|
|
59
60
|
nextResetDate: nextResetDate,
|
|
60
61
|
environmentPrefix,
|
|
62
|
+
resourceId,
|
|
61
63
|
});
|
|
62
64
|
}
|
|
63
65
|
else {
|
|
@@ -83,7 +85,8 @@ class RedisCacheService {
|
|
|
83
85
|
});
|
|
84
86
|
}
|
|
85
87
|
async getCustomerEntitlements(environmentPrefix, customerId) {
|
|
86
|
-
const
|
|
88
|
+
const customerKey = (0, cacheKeysHelpers_1.buildCustomerKey)(environmentPrefix, customerId);
|
|
89
|
+
const entitlements = await this.redisClient.get(customerKey);
|
|
87
90
|
if (entitlements === null || (0, lodash_1.isEmpty)(entitlements)) {
|
|
88
91
|
return null;
|
|
89
92
|
}
|
|
@@ -95,56 +98,55 @@ class RedisCacheService {
|
|
|
95
98
|
if (cachedEntitlements === null) {
|
|
96
99
|
return null;
|
|
97
100
|
}
|
|
98
|
-
const
|
|
101
|
+
const meteredEntitlementsKeys = Array.from(cachedEntitlements === null || cachedEntitlements === void 0 ? void 0 : cachedEntitlements.values())
|
|
99
102
|
.filter((entitlement) => {
|
|
100
103
|
var _a, _b;
|
|
101
104
|
return ((_a = entitlement.calculatedEntitlement.feature) === null || _a === void 0 ? void 0 : _a.meterType) &&
|
|
102
105
|
((_b = entitlement.calculatedEntitlement.feature) === null || _b === void 0 ? void 0 : _b.meterType) !== sdk_1.MeterType.None;
|
|
103
106
|
})
|
|
104
|
-
.map((entitlement) =>
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
.map((entitlement) => {
|
|
108
|
+
return {
|
|
109
|
+
featureId: entitlement.calculatedEntitlement.feature.id,
|
|
110
|
+
resourceId: entitlement.calculatedEntitlement.resourceId,
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
const featuresUsageByFeatureKey = await this.getFeaturesUsage(this.environmentPrefix, customerId, meteredEntitlementsKeys);
|
|
114
|
+
featuresUsageByFeatureKey.forEach((usageValue, featureKey) => {
|
|
115
|
+
const cachedEntitlement = cachedEntitlements.get(featureKey);
|
|
108
116
|
if (cachedEntitlement) {
|
|
109
117
|
const { calculatedEntitlement, featureUsage } = cachedEntitlement;
|
|
110
|
-
cachedEntitlements.set(
|
|
118
|
+
cachedEntitlements.set(featureKey, { calculatedEntitlement, featureUsage: Object.assign(Object.assign({}, featureUsage), usageValue) });
|
|
111
119
|
}
|
|
112
120
|
else {
|
|
113
121
|
this.loggerService.log(`Found usage for a feature the customer is not entitled to.`, {
|
|
114
|
-
customerId
|
|
115
|
-
|
|
122
|
+
customerId,
|
|
123
|
+
featureKey,
|
|
116
124
|
});
|
|
117
125
|
}
|
|
118
126
|
});
|
|
119
127
|
return cachedEntitlements;
|
|
120
128
|
}
|
|
121
|
-
async getFeatureUsage(environmentPrefix, customerId, featureId) {
|
|
122
|
-
return this.redisClient.get(
|
|
129
|
+
async getFeatureUsage(environmentPrefix, customerId, featureId, resourceId) {
|
|
130
|
+
return this.redisClient.get((0, cacheKeysHelpers_1.buildUsageKey)(environmentPrefix, customerId, featureId, resourceId));
|
|
123
131
|
}
|
|
124
|
-
async getFeaturesUsage(environmentPrefix, customerId,
|
|
125
|
-
const keysToFetch =
|
|
132
|
+
async getFeaturesUsage(environmentPrefix, customerId, meteredEntitlementsKeys) {
|
|
133
|
+
const keysToFetch = meteredEntitlementsKeys.map((featureKeyProps) => (0, cacheKeysHelpers_1.buildUsageKey)(environmentPrefix, customerId, featureKeyProps.featureId, featureKeyProps.resourceId));
|
|
126
134
|
const usageValues = await this.redisClient.mget(keysToFetch);
|
|
127
135
|
const featureIdToFeatureUsage = new Map();
|
|
128
136
|
// Redis guarantees returning values in the same order of the keys so this is legit!
|
|
129
|
-
|
|
137
|
+
meteredEntitlementsKeys.forEach((featureKey, index) => {
|
|
130
138
|
const featureUsageValue = usageValues[index];
|
|
131
139
|
if (featureUsageValue === null) {
|
|
132
|
-
this.loggerService.log(`Failed to find usage for metered feature: ${
|
|
140
|
+
this.loggerService.log(`Failed to find usage for metered feature: ${featureKey}`);
|
|
133
141
|
return;
|
|
134
142
|
}
|
|
135
|
-
featureIdToFeatureUsage.set(featureId, JSON.parse(featureUsageValue));
|
|
143
|
+
featureIdToFeatureUsage.set((0, cacheKeysHelpers_1.buildCacheKey)(featureKey.featureId, featureKey.resourceId), JSON.parse(featureUsageValue));
|
|
136
144
|
});
|
|
137
145
|
return featureIdToFeatureUsage;
|
|
138
146
|
}
|
|
139
147
|
clearCache() {
|
|
140
148
|
return;
|
|
141
149
|
}
|
|
142
|
-
buildCustomerKey(environmentPrefix, customerId) {
|
|
143
|
-
return `${environmentPrefix}:${customerId}`;
|
|
144
|
-
}
|
|
145
|
-
buildUsageKey(environmentPrefix, customerId, featureId) {
|
|
146
|
-
return `${environmentPrefix}:${customerId}:${featureId}`;
|
|
147
|
-
}
|
|
148
150
|
async updateKey(timestamp, key, value) {
|
|
149
151
|
const latestTimestampValue = await this.redisClient.get(`${key}#${TIMESTAMP_SUFFIX}`);
|
|
150
152
|
const latestTimestamp = latestTimestampValue !== null && parseInt(latestTimestampValue, 10) !== Number.NaN
|
|
@@ -169,4 +171,4 @@ class RedisCacheService {
|
|
|
169
171
|
}
|
|
170
172
|
}
|
|
171
173
|
exports.RedisCacheService = RedisCacheService;
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNDYWNoZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvcmVkaXNDYWNoZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsc0RBQTRCO0FBQzVCLG1DQUFpQztBQUNqQyxnRUFBbUU7QUFFbkUsc0RBQThCO0FBRTlCLG1FQUE4RjtBQUU5RixNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztBQUNyQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUM7QUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFPMUMsTUFBYSxpQkFBaUI7SUFLNUIsWUFBWSxPQUEwQixFQUFtQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNuRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksaUJBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDbkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1FBRTNDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFNB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
|
|
@@ -31,8 +31,8 @@ export declare abstract class EntitlementsService {
|
|
|
31
31
|
getBooleanEntitlement(customerRefId: string, featureRefId: string, fallbackEntitlement: BooleanEntitlement, resourceId?: string, options?: BooleanEntitlementOptions): Promise<BooleanEntitlement>;
|
|
32
32
|
getNumericEntitlement(customerRefId: string, featureRefId: string, fallbackEntitlement: NumericEntitlement, resourceId?: string, options?: NumericEntitlementOptions): Promise<NumericEntitlement>;
|
|
33
33
|
getMeteredEntitlement(customerRefId: string, featureRefId: string, fallbackEntitlement: MeteredEntitlement, resourceId?: string, options?: MeteredEntitlementOptions): Promise<MeteredEntitlement>;
|
|
34
|
-
getCustomerEntitlementsWithUsage(customerRefId: string, resourceId: string |
|
|
35
|
-
getCustomerEntitlements(customerRefId: string, resourceId: string |
|
|
34
|
+
getCustomerEntitlementsWithUsage(customerRefId: string, resourceId: string | undefined): Promise<import("../models").Entitlement[]>;
|
|
35
|
+
getCustomerEntitlements(customerRefId: string, resourceId: string | undefined): Promise<import("../models").Entitlement[]>;
|
|
36
36
|
abstract clearCache(): void | Promise<void>;
|
|
37
37
|
abstract init(): void | Promise<void>;
|
|
38
38
|
abstract cleanup(): void | Promise<void>;
|
|
@@ -194,4 +194,4 @@ class EntitlementsService {
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
exports.EntitlementsService = EntitlementsService;
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGxlbWVudHNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlGQUFzRjtBQUN0RiwwRkFBa0U7QUFHbEUsc0NBVW1CO0FBRW5CLHNEQUFtRDtBQUNuRCw2RUFBMEU7QUFHMUUsbUNBQWlDO0FBRWpDLGtEQUFpRDtBQUVqRCxnRUFBd0g7QUFDeEgsdUVBQStDO0FBVy9DLE1BQXNCLG1CQUFtQjtJQU12QyxZQUNVLE1BQTJDLEVBQ2hDLGFBQTRCLEVBQzlCLG9CQUF5RCxFQUMxRSxhQUFtQyxFQUNoQixZQUEwQixFQUMxQixpQkFBeUI7UUFMcEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQztRQUV2RCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFFNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkscUJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLHlCQUFlLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxtRUFBZ0MsQ0FDMUUsSUFBSSx5QkFBZSxDQUFDLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCLENBQ3pCLGFBQXFCLEVBQ3JCLFlBQW9CLEVBQ3BCLG1CQUF1QyxFQUN2QyxVQUFt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
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGxlbWVudHNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlGQUFzRjtBQUN0RiwwRkFBa0U7QUFHbEUsc0NBVW1CO0FBRW5CLHNEQUFtRDtBQUNuRCw2RUFBMEU7QUFHMUUsbUNBQWlDO0FBRWpDLGtEQUFpRDtBQUVqRCxnRUFBd0g7QUFDeEgsdUVBQStDO0FBVy9DLE1BQXNCLG1CQUFtQjtJQU12QyxZQUNVLE1BQTJDLEVBQ2hDLGFBQTRCLEVBQzlCLG9CQUF5RCxFQUMxRSxhQUFtQyxFQUNoQixZQUEwQixFQUMxQixpQkFBeUI7UUFMcEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQztRQUV2RCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFFNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkscUJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLHlCQUFlLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxtRUFBZ0MsQ0FDMUUsSUFBSSx5QkFBZSxDQUFDLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCLENBQ3pCLGFBQXFCLEVBQ3JCLFlBQW9CLEVBQ3BCLG1CQUF1QyxFQUN2QyxVQUFt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
|
|
@@ -45,7 +45,7 @@ class InMemoryEntitlementsService extends entitlementsService_1.EntitlementsServ
|
|
|
45
45
|
timestamp: new Date(),
|
|
46
46
|
environmentPrefix: '',
|
|
47
47
|
customerId,
|
|
48
|
-
resourceId,
|
|
48
|
+
resourceId: resourceId || undefined,
|
|
49
49
|
featureId,
|
|
50
50
|
currentUsage,
|
|
51
51
|
nextResetDate: nextResetDate || undefined,
|
|
@@ -88,4 +88,4 @@ class InMemoryEntitlementsService extends entitlementsService_1.EntitlementsServ
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
exports.InMemoryEntitlementsService = InMemoryEntitlementsService;
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5NZW1vcnlFbnRpdGxlbWVudHNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2luTWVtb3J5RW50aXRsZW1lbnRzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSwrREFBNEQ7QUFLNUQsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBRWhELE1BQWEsMkJBQTRCLFNBQVEseUNBQW1CO0lBSWxFLFlBQ3FCLFlBQWtDLEVBQ3JELE1BQTJDLEVBQzNDLG9CQUF5RCxFQUN4QyxZQUErQixFQUNoRCxhQUE0QixFQUM1QixhQUFtQztRQUVuQyxLQUFLLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBUGpFLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUdwQyxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFQMUMsNkJBQXdCLEdBQWtDLElBQUksQ0FBQztRQUMvRCxzQkFBaUIsR0FBa0MsSUFBSSxDQUFDO1FBa0R4RCwwQkFBcUIsR0FBRyxDQUFDLE1BQW9ELEVBQUUsRUFBRTtZQUN2RixJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyx3REFBd0QsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUNoRyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2lCQUN0QyxDQUFDLENBQUM7Z0JBQ0gsT0FBTzthQUNSO1lBRUQsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBRTVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFO2dCQUM5RCxVQUFVLEVBQUUsbUJBQW1C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
|
|
@@ -11,7 +11,7 @@ export declare class RedisEntitlementsService extends EntitlementsService {
|
|
|
11
11
|
protected readonly batchedGraphClient: ApolloClient<NormalizedCacheObject>;
|
|
12
12
|
constructor(environmentPrefix: string, cacheService: RedisCacheService, graphqlClient: ApolloClient<NormalizedCacheObject>, loggerService: LoggerService, batchedGraphClient: ApolloClient<NormalizedCacheObject>, edgeApiClient: EdgeApiClient | null);
|
|
13
13
|
getMeteredEntitlement(customerRefId: string, featureRefId: string, fallbackEntitlement: MeteredEntitlement, resourceId?: string, options?: MeteredEntitlementOptions): Promise<MeteredEntitlement>;
|
|
14
|
-
getCustomerEntitlementsWithUsage(customerRefId: string, resourceId: string |
|
|
14
|
+
getCustomerEntitlementsWithUsage(customerRefId: string, resourceId: string | undefined): Promise<import("../models").Entitlement[]>;
|
|
15
15
|
clearCache(): Promise<void>;
|
|
16
16
|
init(): void | Promise<void>;
|
|
17
17
|
cleanup(): void | Promise<void>;
|
|
@@ -5,6 +5,7 @@ const entitlementsService_1 = require("./entitlementsService");
|
|
|
5
5
|
const models_1 = require("../models");
|
|
6
6
|
const entitlementDecisionService_1 = require("./entitlementDecisionService");
|
|
7
7
|
const lodash_1 = require("lodash");
|
|
8
|
+
const cacheKeysHelpers_1 = require("../utils/cacheKeysHelpers");
|
|
8
9
|
class RedisEntitlementsService extends entitlementsService_1.EntitlementsService {
|
|
9
10
|
constructor(environmentPrefix, cacheService, graphqlClient, loggerService, batchedGraphClient, edgeApiClient) {
|
|
10
11
|
super(graphqlClient, loggerService, batchedGraphClient, edgeApiClient, cacheService, environmentPrefix);
|
|
@@ -17,14 +18,15 @@ class RedisEntitlementsService extends entitlementsService_1.EntitlementsService
|
|
|
17
18
|
var _a, _b, _c;
|
|
18
19
|
const shouldTrack = (options === null || options === void 0 ? void 0 : options.shouldTrack) || false;
|
|
19
20
|
const requestUsage = options === null || options === void 0 ? void 0 : options.requestedUsage;
|
|
20
|
-
let { entitlement, customerExists } = await this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId);
|
|
21
|
+
let { entitlement, customerExists } = await this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId, resourceId);
|
|
21
22
|
if (!entitlement) {
|
|
22
23
|
const refetchResult = await this.refetchEntitlements(customerRefId);
|
|
23
|
-
|
|
24
|
+
const key = (0, cacheKeysHelpers_1.buildCacheKey)(featureRefId, resourceId);
|
|
25
|
+
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(key)) || null;
|
|
24
26
|
customerExists = refetchResult.customerExists;
|
|
25
27
|
}
|
|
26
28
|
if (!(0, lodash_1.isEmpty)(entitlement)) {
|
|
27
|
-
const featureUsageData = await this.cacheService.getFeatureUsage(this.environmentPrefix, customerRefId, featureRefId);
|
|
29
|
+
const featureUsageData = await this.cacheService.getFeatureUsage(this.environmentPrefix, customerRefId, featureRefId, resourceId);
|
|
28
30
|
if (featureUsageData === null) {
|
|
29
31
|
this.loggerService.error('Failed to find metered feature usage', {
|
|
30
32
|
customerRefId,
|
|
@@ -65,7 +67,7 @@ class RedisEntitlementsService extends entitlementsService_1.EntitlementsService
|
|
|
65
67
|
return [];
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
|
-
return
|
|
70
|
+
return (0, cacheKeysHelpers_1.filterEntitlementsByResourceId)(cachedEntitlements, resourceId).map(([, entitlement]) => {
|
|
69
71
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(true, entitlement);
|
|
70
72
|
return this.modelMapper.mapEntitlement(entitlement, decision);
|
|
71
73
|
});
|
|
@@ -84,4 +86,4 @@ class RedisEntitlementsService extends entitlementsService_1.EntitlementsService
|
|
|
84
86
|
}
|
|
85
87
|
}
|
|
86
88
|
exports.RedisEntitlementsService = RedisEntitlementsService;
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNFbnRpdGxlbWVudHNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3JlZGlzRW50aXRsZW1lbnRzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBNEQ7QUFJNUQsc0NBQXFGO0FBQ3JGLDZFQUEwRTtBQUMxRSxtQ0FBaUM7QUFFakMsZ0VBQTBGO0FBRzFGLE1BQWEsd0JBQXlCLFNBQVEseUNBQW1CO0lBQy9ELFlBQ0UsaUJBQXlCLEVBQ04sWUFBK0IsRUFDL0IsYUFBa0QsRUFDbEQsYUFBNEIsRUFDNUIsa0JBQXVELEVBQzFFLGFBQW1DO1FBRW5DLEtBQUssQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQU5yRixpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXFDO1FBQ2xELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUM7SUFJNUUsQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUIsQ0FDekIsYUFBcUIsRUFDckIsWUFBb0IsRUFDcEIsbUJBQXVDLEVBQ3ZDLFVBQW1CLEVBQ25CLE9BQW1DOztRQUVuQyxNQUFNLFdBQVcsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLEtBQUksS0FBSyxDQUFDO1FBQ2xELE1BQU0sWUFBWSxHQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxjQUFjLENBQUM7UUFDN0MsSUFBSSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxpQ0FBaUMsQ0FDaEYsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLENBQ1gsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxh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
|
|
@@ -20,6 +20,7 @@ class CacheMapper {
|
|
|
20
20
|
return {
|
|
21
21
|
calculatedEntitlement: {
|
|
22
22
|
feature,
|
|
23
|
+
resourceId: entitlement.resourceId || undefined,
|
|
23
24
|
usageLimit: entitlement.usageLimit,
|
|
24
25
|
hasUnlimitedUsage: entitlement.hasUnlimitedUsage,
|
|
25
26
|
},
|
|
@@ -41,4 +42,4 @@ class CacheMapper {
|
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
exports.default = CacheMapper;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FjaGVNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvQ2FjaGVNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSx5REFBa0U7QUFHbEUsTUFBcUIsV0FBVztJQUM5QixZQUE2QixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFekQsb0JBQW9CLENBQUMsV0FBZ0M7O1FBQ25ELElBQUksT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN4QixJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUU7WUFDdkIsT0FBTyxHQUFHO2dCQUNSLEVBQUUsRUFBRSxNQUFBLFdBQVcsQ0FBQyxPQUFPLDBDQUFFLEtBQUs7Z0JBQzlCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDN0UsU0FBUyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLFNBQVM7Z0JBQ3JELEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxFQUFFO2dCQUM3QyxXQUFXLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO2FBQzFELENBQUM7U0FDSDtRQUNELE9BQU87WUFDTCxxQkFBcUIsRUFBRTtnQkFDckIsT0FBTztnQkFDUCxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVUsSUFBSSxTQUFTO2dCQUMvQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVU7Z0JBQ2xDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxpQkFBaUI7YUFDakQ7WUFDRCxZQUFZLEVBQUU7Z0JBQ1osV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXO29CQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO29CQUNyRSxDQUFDLENBQUMsU0FBUztnQkFDYix3QkFBd0IsRUFBRSxXQUFXLENBQUMsd0JBQXdCO2dCQUM5RCxZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQVksSUFBSSxDQUFDO2dCQUMzQyxhQUFhLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ3JHO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxtQkFBMEM7UUFDOUQsT0FBTyxJQUFJLEdBQUcsQ0FDWixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLElBQUEsK0NBQTRCLEVBQUMsV0FBVyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7U0FDdkMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4Q0QsOEJBd0NDIn0=
|
|
@@ -485,4 +485,4 @@ class ModelMapper {
|
|
|
485
485
|
}
|
|
486
486
|
}
|
|
487
487
|
exports.ModelMapper = ModelMapper;
|
|
488
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTW9kZWxNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0VBNkJnRDtBQUNoRCxzQ0FvQ21CO0FBR25CLG1DQUF5QztBQUd6QyxNQUFNLFdBQVc7SUFBakI7UUFtS0UsbUJBQWMsR0FBRyxDQUFDLFdBQTJCLEVBQWUsRUFBRTtZQUM1RCxRQUFRLFdBQVcsRUFBRTtnQkFDbkIsS0FBSyxpQkFBYyxDQUFDLE9BQU87b0JBQ3pCLE9BQU8sb0JBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQzdCLEtBQUssaUJBQWMsQ0FBQyxNQUFNO29CQUN4QixPQUFPLG9CQUFXLENBQUMsT0FBTyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsb0JBQWUsR0FBRyxDQUFDLFFBQThCLEVBQWdCLEVBQUU7WUFDakUsT0FBTztnQkFDTCxFQUFFLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ2xCLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxJQUFJLFNBQVM7Z0JBQ2hDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLFNBQVM7Z0JBQ2xDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLFNBQVM7Z0JBQzFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUN2QyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztnQkFDdkMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0I7YUFDdEMsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLDJCQUFzQixHQUFHLENBQUMsd0JBQW1ELEVBQXVCLEVBQUU7WUFDcEcsTUFBTSxRQUFRLEdBQWlCLElBQUksQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFekcsTUFBTSxZQUFZLEdBQTZC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
|
|
488
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTW9kZWxNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0VBNkJnRDtBQUNoRCxzQ0FvQ21CO0FBR25CLG1DQUF5QztBQUV6QyxNQUFNLFdBQVc7SUFBakI7UUFtS0UsbUJBQWMsR0FBRyxDQUFDLFdBQTJCLEVBQWUsRUFBRTtZQUM1RCxRQUFRLFdBQVcsRUFBRTtnQkFDbkIsS0FBSyxpQkFBYyxDQUFDLE9BQU87b0JBQ3pCLE9BQU8sb0JBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQzdCLEtBQUssaUJBQWMsQ0FBQyxNQUFNO29CQUN4QixPQUFPLG9CQUFXLENBQUMsT0FBTyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsb0JBQWUsR0FBRyxDQUFDLFFBQThCLEVBQWdCLEVBQUU7WUFDakUsT0FBTztnQkFDTCxFQUFFLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ2xCLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxJQUFJLFNBQVM7Z0JBQ2hDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLFNBQVM7Z0JBQ2xDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLFNBQVM7Z0JBQzFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUN2QyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztnQkFDdkMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0I7YUFDdEMsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLDJCQUFzQixHQUFHLENBQUMsd0JBQW1ELEVBQXVCLEVBQUU7WUFDcEcsTUFBTSxRQUFRLEdBQWlCLElBQUksQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFekcsTUFBTSxZQUFZLEdBQTZC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
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { EntitlementFragment } from '@stigg/api-client-js/src/generated/sdk';
|
|
2
2
|
import CachedEntitlement from '../services/cache/cachedEntitlement';
|
|
3
3
|
export declare const buildCacheKeyFromEntitlement: (entitlement: EntitlementFragment) => string;
|
|
4
|
-
export declare const buildCacheKey: (featureId: string, resourceId
|
|
5
|
-
export declare const
|
|
4
|
+
export declare const buildCacheKey: (featureId: string, resourceId: string | undefined) => string;
|
|
5
|
+
export declare const buildCustomerKey: (environmentPrefix: string, customerId: string) => string;
|
|
6
|
+
export declare const buildUsageKey: (environmentPrefix: string, customerId: string, featureId: string, resourceId: string | undefined) => string;
|
|
7
|
+
export declare const filterEntitlementsByResourceId: (entitlements: Map<string, CachedEntitlement>, resourceId: string | undefined) => Array<[entitlementKey: string, entitlement: CachedEntitlement]>;
|
|
@@ -1,29 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.filterEntitlementsByResourceId = exports.buildCacheKey = exports.buildCacheKeyFromEntitlement = void 0;
|
|
3
|
+
exports.filterEntitlementsByResourceId = exports.buildUsageKey = exports.buildCustomerKey = exports.buildCacheKey = exports.buildCacheKeyFromEntitlement = void 0;
|
|
4
|
+
const CUSTOMER_PREFIX = 'c_';
|
|
5
|
+
const RESOURCE_PREFIX = 'r_';
|
|
6
|
+
const FEATURE_PREFIX = 'f_';
|
|
4
7
|
const buildCacheKeyFromEntitlement = (entitlement) => {
|
|
5
8
|
var _a;
|
|
6
9
|
const featureId = ((_a = entitlement.feature) === null || _a === void 0 ? void 0 : _a.refId) || '';
|
|
7
|
-
return (0, exports.buildCacheKey)(featureId, entitlement.resourceId);
|
|
10
|
+
return (0, exports.buildCacheKey)(featureId, entitlement.resourceId || undefined);
|
|
8
11
|
};
|
|
9
12
|
exports.buildCacheKeyFromEntitlement = buildCacheKeyFromEntitlement;
|
|
10
13
|
const buildCacheKey = (featureId, resourceId) => {
|
|
11
|
-
let key = featureId
|
|
14
|
+
let key = `${FEATURE_PREFIX}${featureId}`;
|
|
12
15
|
if (resourceId) {
|
|
13
|
-
|
|
16
|
+
const resourceKey = `${RESOURCE_PREFIX}${resourceId}`;
|
|
17
|
+
key = `${resourceKey}:${key}`;
|
|
14
18
|
}
|
|
15
19
|
return key;
|
|
16
20
|
};
|
|
17
21
|
exports.buildCacheKey = buildCacheKey;
|
|
22
|
+
const buildCustomerKey = (environmentPrefix, customerId) => {
|
|
23
|
+
return `${environmentPrefix}:${CUSTOMER_PREFIX}${customerId}`;
|
|
24
|
+
};
|
|
25
|
+
exports.buildCustomerKey = buildCustomerKey;
|
|
26
|
+
const buildUsageKey = (environmentPrefix, customerId, featureId, resourceId) => {
|
|
27
|
+
let key = (0, exports.buildCustomerKey)(environmentPrefix, customerId);
|
|
28
|
+
if (resourceId) {
|
|
29
|
+
key = `${key}:${RESOURCE_PREFIX}${resourceId}`;
|
|
30
|
+
}
|
|
31
|
+
return `${key}:${FEATURE_PREFIX}${featureId}`;
|
|
32
|
+
};
|
|
33
|
+
exports.buildUsageKey = buildUsageKey;
|
|
18
34
|
const filterEntitlementsByResourceId = (entitlements, resourceId) => {
|
|
19
35
|
return [...entitlements.entries()].filter((entry) => {
|
|
20
36
|
const [key] = entry;
|
|
21
37
|
const cachedResourceIdParts = key.split(':');
|
|
22
|
-
if (resourceId ===
|
|
38
|
+
if (resourceId === undefined && cachedResourceIdParts.length < 2) {
|
|
23
39
|
return true;
|
|
24
40
|
}
|
|
25
|
-
return cachedResourceIdParts[
|
|
41
|
+
return cachedResourceIdParts[0] === `${RESOURCE_PREFIX}${resourceId}`;
|
|
26
42
|
});
|
|
27
43
|
};
|
|
28
44
|
exports.filterEntitlementsByResourceId = filterEntitlementsByResourceId;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVLZXlzSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jYWNoZUtleXNIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQztBQUM3QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFDN0IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBRXJCLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxXQUFnQyxFQUFVLEVBQUU7O0lBQ3ZGLE1BQU0sU0FBUyxHQUFHLENBQUEsTUFBQSxXQUFXLENBQUMsT0FBTywwQ0FBRSxLQUFLLEtBQUksRUFBRSxDQUFDO0lBQ25ELE9BQU8sSUFBQSxxQkFBYSxFQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMsQ0FBQztBQUhXLFFBQUEsNEJBQTRCLGdDQUd2QztBQUVLLE1BQU0sYUFBYSxHQUFHLENBQUMsU0FBaUIsRUFBRSxVQUE4QixFQUFVLEVBQUU7SUFDekYsSUFBSSxHQUFHLEdBQUcsR0FBRyxjQUFjLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDMUMsSUFBSSxVQUFVLEVBQUU7UUFDZCxNQUFNLFdBQVcsR0FBRyxHQUFHLGVBQWUsR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUN0RCxHQUFHLEdBQUcsR0FBRyxXQUFXLElBQUksR0FBRyxFQUFFLENBQUM7S0FDL0I7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQVJXLFFBQUEsYUFBYSxpQkFReEI7QUFFSyxNQUFNLGdCQUFnQixHQUFHLENBQUMsaUJBQXlCLEVBQUUsVUFBa0IsRUFBRSxFQUFFO0lBQ2hGLE9BQU8sR0FBRyxpQkFBaUIsSUFBSSxlQUFlLEdBQUcsVUFBVSxFQUFFLENBQUM7QUFDaEUsQ0FBQyxDQUFDO0FBRlcsUUFBQSxnQkFBZ0Isb0JBRTNCO0FBRUssTUFBTSxhQUFhLEdBQUcsQ0FDM0IsaUJBQXlCLEVBQ3pCLFVBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLFVBQThCLEVBQzlCLEVBQUU7SUFDRixJQUFJLEdBQUcsR0FBRyxJQUFBLHdCQUFnQixFQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRTFELElBQUksVUFBVSxFQUFFO1FBQ2QsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLGVBQWUsR0FBRyxVQUFVLEVBQUUsQ0FBQztLQUNoRDtJQUVELE9BQU8sR0FBRyxHQUFHLElBQUksY0FBYyxHQUFHLFNBQVMsRUFBRSxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQWJXLFFBQUEsYUFBYSxpQkFheEI7QUFDSyxNQUFNLDhCQUE4QixHQUFHLENBQzVDLFlBQTRDLEVBQzVDLFVBQThCLEVBQ21DLEVBQUU7SUFDbkUsT0FBTyxDQUFDLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDbEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNwQixNQUFNLHFCQUFxQixHQUFJLEdBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8scUJBQXFCLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxlQUFlLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDeEUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFaVyxRQUFBLDhCQUE4QixrQ0FZekMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigg/node-server-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Stigg server-side node SDK",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@bitauth/libauth": "^1.17.1",
|
|
36
36
|
"@graphql-codegen/fragment-matcher": "^3.2.1",
|
|
37
37
|
"@sentry/node": "^7.11.1",
|
|
38
|
-
"@stigg/api-client-js": "0.
|
|
38
|
+
"@stigg/api-client-js": "0.377.0",
|
|
39
39
|
"@types/ws": "^8.2.3",
|
|
40
40
|
"axios": "^1.2.2",
|
|
41
41
|
"cross-fetch": "^3.1.5",
|