@stigg/node-server-sdk 0.20.0 → 0.22.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/api/entitlements/entitlementsApi.d.ts +1 -4
- package/dist/api/entitlements/entitlementsApi.js +1 -16
- package/dist/api/generated/types.d.ts +42 -813
- package/dist/api/generated/types.js +3 -7
- package/dist/api/initApolloClient.d.ts +2 -2
- package/dist/api/initApolloClient.js +3 -3
- package/dist/api/managementApi.d.ts +2 -2
- package/dist/api/managementApi.js +3 -3
- package/dist/client.d.ts +44 -17
- package/dist/client.js +68 -52
- package/dist/configuration.d.ts +3 -11
- package/dist/configuration.js +7 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/models.d.ts +86 -41
- package/dist/models.js +39 -15
- package/dist/services/cache/cachedEntitlement.d.ts +2 -5
- package/dist/services/cache/cachedEntitlement.js +1 -1
- package/dist/services/entitlementDecisionService.d.ts +2 -2
- package/dist/services/entitlementDecisionService.js +12 -14
- package/dist/services/entitlementsService.d.ts +8 -2
- package/dist/services/entitlementsService.js +71 -21
- package/dist/services/generateRandomSlug.d.ts +1 -0
- package/dist/services/generateRandomSlug.js +10 -0
- package/dist/services/loggerService.d.ts +8 -1
- package/dist/services/loggerService.js +1 -1
- package/dist/utils/ModelMapper.d.ts +6 -3
- package/dist/utils/ModelMapper.js +56 -58
- package/package.json +6 -2
|
@@ -1,76 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ModelMapper = void 0;
|
|
4
|
+
const types_1 = require("../api/generated/types");
|
|
4
5
|
const models_1 = require("../models");
|
|
5
6
|
class ModelMapper {
|
|
6
7
|
constructor() {
|
|
7
|
-
this.
|
|
8
|
-
if (entitlement.calculatedEntitlement.meterType != models_1.MeterType.None && !requestedUsage) {
|
|
9
|
-
return models_1.INVALID_ENTITLEMENT;
|
|
10
|
-
}
|
|
11
|
-
const featureType = entitlement.calculatedEntitlement.featureType;
|
|
12
|
-
const meterType = entitlement.calculatedEntitlement.meterType;
|
|
13
|
-
if (!featureType) {
|
|
14
|
-
throw new Error(`No feature type provided with unknown reason`);
|
|
15
|
-
}
|
|
8
|
+
this.mapFeatureType = (featureType) => {
|
|
16
9
|
switch (featureType) {
|
|
17
|
-
case
|
|
18
|
-
return
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
isGranted: decision.isGranted,
|
|
22
|
-
accessDeniedReason: decision.accessDeniedReason,
|
|
23
|
-
featureId,
|
|
24
|
-
};
|
|
25
|
-
case models_1.FeatureType.Number: {
|
|
26
|
-
if (meterType === models_1.MeterType.Fluctuating || meterType === models_1.MeterType.Incremental) {
|
|
27
|
-
return {
|
|
28
|
-
isValid: true,
|
|
29
|
-
featureType: models_1.FeatureType.Number,
|
|
30
|
-
isGranted: decision.isGranted,
|
|
31
|
-
usageLimit: entitlement.calculatedEntitlement.usageLimit || null,
|
|
32
|
-
featureUnits: entitlement.calculatedEntitlement.featureUnits || '',
|
|
33
|
-
featureUnitsPlural: entitlement.calculatedEntitlement.featureUnitsPlural || '',
|
|
34
|
-
accessDeniedReason: decision.accessDeniedReason,
|
|
35
|
-
hasUnlimitedUsage: entitlement.calculatedEntitlement.hasUnlimitedUsage,
|
|
36
|
-
meterType: meterType,
|
|
37
|
-
currentUsage: entitlement.featureUsage.currentUsage || 0,
|
|
38
|
-
requestedUsage: requestedUsage || 0,
|
|
39
|
-
featureId,
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
return {
|
|
44
|
-
isValid: true,
|
|
45
|
-
featureType: models_1.FeatureType.Number,
|
|
46
|
-
meterType: meterType,
|
|
47
|
-
isGranted: decision.isGranted,
|
|
48
|
-
usageLimit: entitlement.calculatedEntitlement.usageLimit || null,
|
|
49
|
-
featureUnits: entitlement.calculatedEntitlement.featureUnits || '',
|
|
50
|
-
featureUnitsPlural: entitlement.calculatedEntitlement.featureUnitsPlural || '',
|
|
51
|
-
accessDeniedReason: decision.accessDeniedReason,
|
|
52
|
-
hasUnlimitedUsage: entitlement.calculatedEntitlement.hasUnlimitedUsage,
|
|
53
|
-
featureId,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
default:
|
|
58
|
-
throw new Error(`Feature type ${featureType} is not supported in this version of the sdk`);
|
|
10
|
+
case types_1.FeatureType.Boolean:
|
|
11
|
+
return models_1.FeatureType.Boolean;
|
|
12
|
+
case types_1.FeatureType.Number:
|
|
13
|
+
return models_1.FeatureType.Numeric;
|
|
59
14
|
}
|
|
60
15
|
};
|
|
61
16
|
this.mapCachedEntitlement = (entitlement, currentUsage, nextResetDate) => {
|
|
62
|
-
var _a
|
|
17
|
+
var _a;
|
|
18
|
+
let feature = undefined;
|
|
19
|
+
if (entitlement.feature) {
|
|
20
|
+
feature = {
|
|
21
|
+
id: (_a = entitlement.feature) === null || _a === void 0 ? void 0 : _a.refId,
|
|
22
|
+
featureType: this.mapFeatureType(entitlement.feature.featureType),
|
|
23
|
+
meterType: entitlement.feature.meterType || undefined,
|
|
24
|
+
units: entitlement.feature.featureUnits || '',
|
|
25
|
+
unitsPlural: entitlement.feature.featureUnitsPlural || '',
|
|
26
|
+
};
|
|
27
|
+
}
|
|
63
28
|
return {
|
|
64
29
|
calculatedEntitlement: {
|
|
65
|
-
|
|
66
|
-
meterType: (_b = entitlement.feature) === null || _b === void 0 ? void 0 : _b.meterType,
|
|
30
|
+
feature,
|
|
67
31
|
usageLimit: entitlement.usageLimit,
|
|
68
32
|
hasUnlimitedUsage: entitlement.hasUnlimitedUsage,
|
|
69
|
-
featureUnits: (_c = entitlement.feature) === null || _c === void 0 ? void 0 : _c.featureUnits,
|
|
70
|
-
featureUnitsPlural: (_d = entitlement.feature) === null || _d === void 0 ? void 0 : _d.featureUnitsPlural,
|
|
71
33
|
},
|
|
72
34
|
featureUsage: {
|
|
73
|
-
currentUsage: currentUsage || entitlement.currentUsage,
|
|
35
|
+
currentUsage: currentUsage || entitlement.currentUsage || 0,
|
|
74
36
|
nextResetDate: nextResetDate || entitlement.nextResetDate,
|
|
75
37
|
},
|
|
76
38
|
};
|
|
@@ -112,6 +74,42 @@ class ModelMapper {
|
|
|
112
74
|
};
|
|
113
75
|
};
|
|
114
76
|
}
|
|
77
|
+
mapBooleanEntitlement(entitlement, decision) {
|
|
78
|
+
return {
|
|
79
|
+
isFallback: false,
|
|
80
|
+
hasAccess: decision.hasAccess,
|
|
81
|
+
accessDeniedReason: decision.accessDeniedReason,
|
|
82
|
+
feature: entitlement.calculatedEntitlement.feature
|
|
83
|
+
? Object.assign(Object.assign({}, entitlement.calculatedEntitlement.feature), { isMetered: false }) : undefined,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
mapNumericEntitlement(entitlement, decision) {
|
|
87
|
+
const { hasUnlimitedUsage, usageLimit } = entitlement.calculatedEntitlement;
|
|
88
|
+
return {
|
|
89
|
+
isFallback: false,
|
|
90
|
+
hasAccess: decision.hasAccess,
|
|
91
|
+
accessDeniedReason: decision.accessDeniedReason,
|
|
92
|
+
isUnlimited: hasUnlimitedUsage,
|
|
93
|
+
value: usageLimit || undefined,
|
|
94
|
+
feature: entitlement.calculatedEntitlement.feature
|
|
95
|
+
? Object.assign(Object.assign({}, entitlement.calculatedEntitlement.feature), { isMetered: false }) : undefined,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
mapMeteredEntitlement(entitlement, decision, requestedUsage) {
|
|
99
|
+
const { hasUnlimitedUsage, usageLimit } = entitlement.calculatedEntitlement;
|
|
100
|
+
const { currentUsage } = entitlement.featureUsage;
|
|
101
|
+
return {
|
|
102
|
+
isFallback: false,
|
|
103
|
+
hasAccess: decision.hasAccess,
|
|
104
|
+
accessDeniedReason: decision.accessDeniedReason,
|
|
105
|
+
isUnlimited: hasUnlimitedUsage,
|
|
106
|
+
usageLimit: usageLimit || undefined,
|
|
107
|
+
currentUsage: currentUsage,
|
|
108
|
+
requestedUsage: requestedUsage || 0,
|
|
109
|
+
feature: entitlement.calculatedEntitlement.feature
|
|
110
|
+
? Object.assign(Object.assign({}, entitlement.calculatedEntitlement.feature), { meterType: entitlement.calculatedEntitlement.feature.meterType || undefined, isMetered: true }) : undefined,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
115
113
|
}
|
|
116
114
|
exports.ModelMapper = ModelMapper;
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTW9kZWxNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBT2dDO0FBQ2hDLHNDQVFtQjtBQUluQixNQUFNLFdBQVc7SUFBakI7UUEwREUsbUJBQWMsR0FBRyxDQUFDLFdBQTJCLEVBQWUsRUFBRTtZQUM1RCxRQUFRLFdBQVcsRUFBRTtnQkFDbkIsS0FBSyxtQkFBYyxDQUFDLE9BQU87b0JBQ3pCLE9BQU8sb0JBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQzdCLEtBQUssbUJBQWMsQ0FBQyxNQUFNO29CQUN4QixPQUFPLG9CQUFXLENBQUMsT0FBTyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDO1FBRUYseUJBQW9CLEdBQUcsQ0FDckIsV0FBZ0MsRUFDaEMsWUFBcUIsRUFDckIsYUFBNkIsRUFDVixFQUFFOztZQUNyQixJQUFJLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDeEIsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO2dCQUN2QixPQUFPLEdBQUc7b0JBQ1IsRUFBRSxFQUFFLE1BQUEsV0FBVyxDQUFDLE9BQU8sMENBQUUsS0FBSztvQkFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7b0JBQ2pFLFNBQVMsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTO29CQUNyRCxLQUFLLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksRUFBRTtvQkFDN0MsV0FBVyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLElBQUksRUFBRTtpQkFDMUQsQ0FBQzthQUNIO1lBQ0QsT0FBTztnQkFDTCxxQkFBcUIsRUFBRTtvQkFDckIsT0FBTztvQkFDUCxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVU7b0JBQ2xDLGlCQUFpQixFQUFFLFdBQVcs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigg/node-server-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Stigg server-side node SDK",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
"prepare-release": "run-s reset-hard test doc:html",
|
|
22
22
|
"prepare": "husky install",
|
|
23
23
|
"run": "ts-node examples/runSdk.ts",
|
|
24
|
-
"lint": "eslint \"{src,examples,test}/**/*.ts\" --fix"
|
|
24
|
+
"lint": "eslint \"{src,examples,test}/**/*.ts\" --fix",
|
|
25
|
+
"docs": "typedoc"
|
|
25
26
|
},
|
|
26
27
|
"files": [
|
|
27
28
|
"dist/**/*"
|
|
@@ -41,6 +42,7 @@
|
|
|
41
42
|
"isomorphic-ws": "^4.0.1",
|
|
42
43
|
"lint-staged": "^11.2.3",
|
|
43
44
|
"lodash": "^4.17.21",
|
|
45
|
+
"nanoid": "^3.3.2",
|
|
44
46
|
"ws": "^8.5.0"
|
|
45
47
|
},
|
|
46
48
|
"devDependencies": {
|
|
@@ -69,6 +71,8 @@
|
|
|
69
71
|
"standard-version": "^9.0.0",
|
|
70
72
|
"ts-jest": "^27.0.7",
|
|
71
73
|
"ts-node": "^9.0.0",
|
|
74
|
+
"typedoc": "^0.22.13",
|
|
75
|
+
"typedoc-plugin-rename-defaults": "^0.4.0",
|
|
72
76
|
"typescript": "^4.0.2"
|
|
73
77
|
},
|
|
74
78
|
"lint-staged": {
|