@usertour/helpers 0.0.29 → 0.0.31
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/__tests__/attribute.test.cjs +505 -67
- package/dist/__tests__/attribute.test.js +495 -60
- package/dist/__tests__/condition.test.cjs +83 -12
- package/dist/__tests__/condition.test.js +10 -5
- package/dist/{chunk-PBZSPV5R.js → chunk-P46FJFKP.js} +20 -10
- package/dist/{chunk-E2IJQFKH.js → chunk-VBHUPKP7.js} +41 -7
- package/dist/{chunk-4LLDSAHJ.js → chunk-VWNWWZCH.js} +8 -9
- package/dist/conditions/attribute.cjs +16 -9
- package/dist/conditions/attribute.d.cts +5 -7
- package/dist/conditions/attribute.d.ts +5 -7
- package/dist/conditions/attribute.js +1 -1
- package/dist/conditions/condition.cjs +121 -12
- package/dist/conditions/condition.d.cts +19 -1
- package/dist/conditions/condition.d.ts +19 -1
- package/dist/conditions/condition.js +11 -4
- package/dist/conditions/index.cjs +121 -12
- package/dist/conditions/index.d.cts +1 -1
- package/dist/conditions/index.d.ts +1 -1
- package/dist/conditions/index.js +11 -4
- package/dist/content.cjs +8 -9
- package/dist/content.js +1 -1
- package/dist/index.cjs +59 -19
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -4
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -39,6 +39,8 @@ __export(src_exports, {
|
|
|
39
39
|
ArrayProto: () => ArrayProto,
|
|
40
40
|
XMLHttpRequest: () => XMLHttpRequest,
|
|
41
41
|
absoluteUrl: () => absoluteUrl,
|
|
42
|
+
allConditionsHaveIds: () => allConditionsHaveIds,
|
|
43
|
+
assignConditionIds: () => assignConditionIds,
|
|
42
44
|
assignableWindow: () => assignableWindow,
|
|
43
45
|
buildConfig: () => buildConfig,
|
|
44
46
|
cn: () => cn,
|
|
@@ -110,6 +112,7 @@ __export(src_exports, {
|
|
|
110
112
|
nativeIndexOf: () => nativeIndexOf,
|
|
111
113
|
navigator: () => navigator,
|
|
112
114
|
parseUrlParams: () => parseUrlParams,
|
|
115
|
+
regenerateConditionIds: () => regenerateConditionIds,
|
|
113
116
|
removeAuthToken: () => removeAuthToken,
|
|
114
117
|
setAuthToken: () => setAuthToken,
|
|
115
118
|
storage: () => storage,
|
|
@@ -836,25 +839,24 @@ function isUrl(string) {
|
|
|
836
839
|
var import_types3 = require("@usertour/types");
|
|
837
840
|
var import_deepmerge_ts2 = require("deepmerge-ts");
|
|
838
841
|
var isPublishedInAllEnvironments = (content, environmentList, version) => {
|
|
839
|
-
|
|
842
|
+
var _a;
|
|
843
|
+
if (!((_a = content == null ? void 0 : content.contentOnEnvironments) == null ? void 0 : _a.length) || !(environmentList == null ? void 0 : environmentList.length) || !(version == null ? void 0 : version.id)) {
|
|
844
|
+
return false;
|
|
845
|
+
}
|
|
846
|
+
return environmentList.every(
|
|
840
847
|
(env) => {
|
|
841
|
-
var
|
|
842
|
-
return (
|
|
843
|
-
(item) => item.published && item.publishedVersionId ===
|
|
848
|
+
var _a2;
|
|
849
|
+
return (_a2 = content == null ? void 0 : content.contentOnEnvironments) == null ? void 0 : _a2.some(
|
|
850
|
+
(item) => item.published && item.publishedVersionId === version.id && item.environment.id === env.id
|
|
844
851
|
);
|
|
845
852
|
}
|
|
846
853
|
);
|
|
847
|
-
const isPublishedInOneEnvironment = (content == null ? void 0 : content.published) && (content == null ? void 0 : content.publishedVersionId) === (version == null ? void 0 : version.id) && environmentList && (environmentList == null ? void 0 : environmentList.length) === 1;
|
|
848
|
-
return (content == null ? void 0 : content.contentOnEnvironments) && (content == null ? void 0 : content.contentOnEnvironments.length) > 0 ? Boolean(isPublishedInAllEnvironments2) : Boolean(isPublishedInOneEnvironment);
|
|
849
854
|
};
|
|
850
855
|
var isPublishedAtLeastOneEnvironment = (content) => {
|
|
851
856
|
var _a;
|
|
852
857
|
if ((content == null ? void 0 : content.contentOnEnvironments) && ((_a = content == null ? void 0 : content.contentOnEnvironments) == null ? void 0 : _a.length) > 0) {
|
|
853
858
|
return true;
|
|
854
859
|
}
|
|
855
|
-
if ((content == null ? void 0 : content.published) && (content == null ? void 0 : content.publishedVersionId)) {
|
|
856
|
-
return true;
|
|
857
|
-
}
|
|
858
860
|
return false;
|
|
859
861
|
};
|
|
860
862
|
var rulesSetting = {
|
|
@@ -1127,20 +1129,27 @@ var evaluateTimeCondition = (rules) => {
|
|
|
1127
1129
|
// src/conditions/attribute.ts
|
|
1128
1130
|
var import_types4 = require("@usertour/types");
|
|
1129
1131
|
var import_date_fns2 = require("date-fns");
|
|
1130
|
-
function evaluateAttributeCondition(condition,
|
|
1132
|
+
function evaluateAttributeCondition(condition, options) {
|
|
1131
1133
|
const { data } = condition;
|
|
1132
1134
|
if (!data) {
|
|
1133
1135
|
return false;
|
|
1134
1136
|
}
|
|
1135
1137
|
const { logic, value, attrId, value2, listValues = [] } = data;
|
|
1136
|
-
|
|
1138
|
+
const {
|
|
1139
|
+
attributes,
|
|
1140
|
+
userAttributes = {},
|
|
1141
|
+
companyAttributes = {},
|
|
1142
|
+
membershipAttributes = {}
|
|
1143
|
+
} = options;
|
|
1144
|
+
if (!attrId || !attributes) {
|
|
1137
1145
|
return false;
|
|
1138
1146
|
}
|
|
1139
1147
|
const attr = attributes.find((attr2) => attr2.id === attrId);
|
|
1140
1148
|
if (!attr) {
|
|
1141
1149
|
return false;
|
|
1142
1150
|
}
|
|
1143
|
-
const
|
|
1151
|
+
const bizAttributes = attr.bizType === import_types4.AttributeBizTypes.Company ? companyAttributes : attr.bizType === import_types4.AttributeBizTypes.Membership ? membershipAttributes : userAttributes;
|
|
1152
|
+
const actualValue = getAttributeValue(attr.codeName, bizAttributes);
|
|
1144
1153
|
if (attr.dataType === import_types4.BizAttributeTypes.String) {
|
|
1145
1154
|
return evaluateStringCondition(logic, actualValue, value);
|
|
1146
1155
|
}
|
|
@@ -1158,8 +1167,8 @@ function evaluateAttributeCondition(condition, attributes, userAttributes) {
|
|
|
1158
1167
|
}
|
|
1159
1168
|
return false;
|
|
1160
1169
|
}
|
|
1161
|
-
function getAttributeValue(codeName,
|
|
1162
|
-
return
|
|
1170
|
+
function getAttributeValue(codeName, attributes) {
|
|
1171
|
+
return attributes == null ? void 0 : attributes[codeName];
|
|
1163
1172
|
}
|
|
1164
1173
|
function evaluateStringCondition(logic, actualValue, expectedValue) {
|
|
1165
1174
|
const stringValue = actualValue === null || actualValue === void 0 ? "" : String(actualValue);
|
|
@@ -1360,11 +1369,7 @@ var evaluateRule = async (condition, options) => {
|
|
|
1360
1369
|
case import_types5.RulesType.TIME:
|
|
1361
1370
|
return evaluateTimeCondition(condition);
|
|
1362
1371
|
case import_types5.RulesType.USER_ATTR:
|
|
1363
|
-
return evaluateAttributeCondition(
|
|
1364
|
-
condition,
|
|
1365
|
-
options.attributes || [],
|
|
1366
|
-
options.userAttributes || {}
|
|
1367
|
-
);
|
|
1372
|
+
return evaluateAttributeCondition(condition, options);
|
|
1368
1373
|
default:
|
|
1369
1374
|
return condition.actived || false;
|
|
1370
1375
|
}
|
|
@@ -1386,12 +1391,46 @@ var evaluateRulesConditions = async (conditions, options = {}) => {
|
|
|
1386
1391
|
}
|
|
1387
1392
|
return results;
|
|
1388
1393
|
};
|
|
1394
|
+
var regenerateConditionIds = (conditions) => {
|
|
1395
|
+
return conditions.map((condition) => ({
|
|
1396
|
+
...condition,
|
|
1397
|
+
id: cuid(),
|
|
1398
|
+
conditions: condition.conditions ? regenerateConditionIds(condition.conditions) : void 0
|
|
1399
|
+
}));
|
|
1400
|
+
};
|
|
1401
|
+
var assignConditionIds = (conditions) => {
|
|
1402
|
+
return conditions.map((condition) => {
|
|
1403
|
+
var _a;
|
|
1404
|
+
return {
|
|
1405
|
+
...condition,
|
|
1406
|
+
id: (_a = condition.id) != null ? _a : cuid(),
|
|
1407
|
+
conditions: condition.conditions ? assignConditionIds(condition.conditions) : void 0
|
|
1408
|
+
};
|
|
1409
|
+
});
|
|
1410
|
+
};
|
|
1411
|
+
var allConditionsHaveIds = (conditions) => {
|
|
1412
|
+
if (!conditions || conditions.length === 0)
|
|
1413
|
+
return true;
|
|
1414
|
+
for (const condition of conditions) {
|
|
1415
|
+
if (!condition.id) {
|
|
1416
|
+
return false;
|
|
1417
|
+
}
|
|
1418
|
+
if (condition.type === "group" && condition.conditions) {
|
|
1419
|
+
if (!allConditionsHaveIds(condition.conditions)) {
|
|
1420
|
+
return false;
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1424
|
+
return true;
|
|
1425
|
+
};
|
|
1389
1426
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1390
1427
|
0 && (module.exports = {
|
|
1391
1428
|
AbortController,
|
|
1392
1429
|
ArrayProto,
|
|
1393
1430
|
XMLHttpRequest,
|
|
1394
1431
|
absoluteUrl,
|
|
1432
|
+
allConditionsHaveIds,
|
|
1433
|
+
assignConditionIds,
|
|
1395
1434
|
assignableWindow,
|
|
1396
1435
|
buildConfig,
|
|
1397
1436
|
cn,
|
|
@@ -1463,6 +1502,7 @@ var evaluateRulesConditions = async (conditions, options = {}) => {
|
|
|
1463
1502
|
nativeIndexOf,
|
|
1464
1503
|
navigator,
|
|
1465
1504
|
parseUrlParams,
|
|
1505
|
+
regenerateConditionIds,
|
|
1466
1506
|
removeAuthToken,
|
|
1467
1507
|
setAuthToken,
|
|
1468
1508
|
storage,
|
package/dist/index.d.cts
CHANGED
|
@@ -9,7 +9,7 @@ export { buildConfig, defaultContentConfig, isPublishedAtLeastOneEnvironment, is
|
|
|
9
9
|
export { deepClone, parseUrlParams, wait } from './utils.cjs';
|
|
10
10
|
export { generateAutoStateColors, hexToHSLString, hexToRGBStr } from './color.cjs';
|
|
11
11
|
export { absoluteUrl, cn, cuid, evalCode, formatDate, getRandomColor, hexToRgb, isDark, uuidV4 } from './helper.cjs';
|
|
12
|
-
export { conditionsIsSame, evaluateRule, evaluateRulesConditions, filterConditionsByType, isConditionsActived } from './conditions/condition.cjs';
|
|
12
|
+
export { allConditionsHaveIds, assignConditionIds, conditionsIsSame, evaluateRule, evaluateRulesConditions, filterConditionsByType, isConditionsActived, regenerateConditionIds } from './conditions/condition.cjs';
|
|
13
13
|
export { evaluateUrlCondition, isMatchUrlPattern } from './conditions/url.cjs';
|
|
14
14
|
export { evaluateTimeCondition } from './conditions/time.cjs';
|
|
15
15
|
export { evaluateAttributeCondition } from './conditions/attribute.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export { buildConfig, defaultContentConfig, isPublishedAtLeastOneEnvironment, is
|
|
|
9
9
|
export { deepClone, parseUrlParams, wait } from './utils.js';
|
|
10
10
|
export { generateAutoStateColors, hexToHSLString, hexToRGBStr } from './color.js';
|
|
11
11
|
export { absoluteUrl, cn, cuid, evalCode, formatDate, getRandomColor, hexToRgb, isDark, uuidV4 } from './helper.js';
|
|
12
|
-
export { conditionsIsSame, evaluateRule, evaluateRulesConditions, filterConditionsByType, isConditionsActived } from './conditions/condition.js';
|
|
12
|
+
export { allConditionsHaveIds, assignConditionIds, conditionsIsSame, evaluateRule, evaluateRulesConditions, filterConditionsByType, isConditionsActived, regenerateConditionIds } from './conditions/condition.js';
|
|
13
13
|
export { evaluateUrlCondition, isMatchUrlPattern } from './conditions/url.js';
|
|
14
14
|
export { evaluateTimeCondition } from './conditions/time.js';
|
|
15
15
|
export { evaluateAttributeCondition } from './conditions/attribute.js';
|
package/dist/index.js
CHANGED
|
@@ -11,13 +11,16 @@ import {
|
|
|
11
11
|
wait
|
|
12
12
|
} from "./chunk-5C3J4DM2.js";
|
|
13
13
|
import {
|
|
14
|
+
allConditionsHaveIds,
|
|
15
|
+
assignConditionIds,
|
|
14
16
|
conditionsIsSame,
|
|
15
17
|
evaluateRule,
|
|
16
18
|
evaluateRulesConditions,
|
|
17
19
|
filterConditionsByType,
|
|
18
20
|
isConditionsActived,
|
|
19
|
-
isEqual
|
|
20
|
-
|
|
21
|
+
isEqual,
|
|
22
|
+
regenerateConditionIds
|
|
23
|
+
} from "./chunk-VBHUPKP7.js";
|
|
21
24
|
import {
|
|
22
25
|
evaluateUrlCondition,
|
|
23
26
|
isMatchUrlPattern
|
|
@@ -25,7 +28,7 @@ import {
|
|
|
25
28
|
import "./chunk-PAESAL23.js";
|
|
26
29
|
import {
|
|
27
30
|
evaluateAttributeCondition
|
|
28
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-P46FJFKP.js";
|
|
29
32
|
import {
|
|
30
33
|
evaluateTimeCondition
|
|
31
34
|
} from "./chunk-CEK3SCQO.js";
|
|
@@ -41,7 +44,7 @@ import {
|
|
|
41
44
|
defaultContentConfig,
|
|
42
45
|
isPublishedAtLeastOneEnvironment,
|
|
43
46
|
isPublishedInAllEnvironments
|
|
44
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-VWNWWZCH.js";
|
|
45
48
|
import {
|
|
46
49
|
convertSettings,
|
|
47
50
|
convertToCssVars,
|
|
@@ -119,6 +122,8 @@ export {
|
|
|
119
122
|
ArrayProto,
|
|
120
123
|
XMLHttpRequest,
|
|
121
124
|
absoluteUrl,
|
|
125
|
+
allConditionsHaveIds,
|
|
126
|
+
assignConditionIds,
|
|
122
127
|
assignableWindow,
|
|
123
128
|
buildConfig,
|
|
124
129
|
cn,
|
|
@@ -190,6 +195,7 @@ export {
|
|
|
190
195
|
nativeIndexOf,
|
|
191
196
|
navigator,
|
|
192
197
|
parseUrlParams,
|
|
198
|
+
regenerateConditionIds,
|
|
193
199
|
removeAuthToken,
|
|
194
200
|
setAuthToken,
|
|
195
201
|
storage,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usertour/helpers",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.31",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Utility functions and helpers shared across the UserTour project",
|
|
6
6
|
"homepage": "https://www.usertour.io",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@paralleldrive/cuid2": "^2.2.2",
|
|
32
|
-
"@usertour/types": "^0.0.
|
|
32
|
+
"@usertour/types": "^0.0.19",
|
|
33
33
|
"chroma-js": "^3.1.2",
|
|
34
34
|
"class-variance-authority": "^0.4.0",
|
|
35
35
|
"clsx": "^1.2.1",
|