@usertour/helpers 0.0.20 → 0.0.21
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__/condition.test.js +1 -1
- package/dist/{chunk-TB7JGI2Q.js → chunk-UNXDVBM3.js} +1 -0
- package/dist/conditions/condition.cjs +2 -0
- package/dist/conditions/condition.d.cts +26 -1
- package/dist/conditions/condition.d.ts +26 -1
- package/dist/conditions/condition.js +3 -1
- package/dist/conditions/index.cjs +45 -0
- package/dist/conditions/index.d.cts +1 -1
- package/dist/conditions/index.d.ts +1 -1
- package/dist/conditions/index.js +5 -1
- package/dist/index.cjs +45 -0
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -1
- package/package.json +1 -1
|
@@ -32,6 +32,7 @@ var condition_exports = {};
|
|
|
32
32
|
__export(condition_exports, {
|
|
33
33
|
activedRulesConditions: () => activedRulesConditions,
|
|
34
34
|
conditionsIsSame: () => conditionsIsSame,
|
|
35
|
+
evaluateRule: () => evaluateRule,
|
|
35
36
|
filterConditionsByType: () => filterConditionsByType,
|
|
36
37
|
isConditionsActived: () => isConditionsActived,
|
|
37
38
|
isEqual: () => import_fast_deep_equal.default
|
|
@@ -410,6 +411,7 @@ var activedRulesConditions = (conditions, options = {}) => {
|
|
|
410
411
|
0 && (module.exports = {
|
|
411
412
|
activedRulesConditions,
|
|
412
413
|
conditionsIsSame,
|
|
414
|
+
evaluateRule,
|
|
413
415
|
filterConditionsByType,
|
|
414
416
|
isConditionsActived,
|
|
415
417
|
isEqual
|
|
@@ -10,6 +10,31 @@ declare const isConditionsActived: (conditions: RulesCondition[]) => boolean;
|
|
|
10
10
|
* @returns Filtered conditions array
|
|
11
11
|
*/
|
|
12
12
|
declare const filterConditionsByType: (conditions: RulesCondition[], allowedTypes: RulesType[]) => RulesCondition[];
|
|
13
|
+
/**
|
|
14
|
+
* Evaluate and activate rules conditions with enhanced context and type control
|
|
15
|
+
*
|
|
16
|
+
* @param conditions - Array of rules conditions to evaluate
|
|
17
|
+
* @param options - Evaluation options including context, type control, and ID overrides
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* const result = await activedRulesConditions(conditions, {
|
|
21
|
+
* clientContext: {
|
|
22
|
+
* page_url: 'https://example.com',
|
|
23
|
+
* viewport_width: 1920,
|
|
24
|
+
* viewport_height: 1080
|
|
25
|
+
* },
|
|
26
|
+
* attributes: userAttributes,
|
|
27
|
+
* userAttributes: userData,
|
|
28
|
+
* typeControl: {
|
|
29
|
+
* [RulesType.CURRENT_PAGE]: true,
|
|
30
|
+
* [RulesType.TIME]: false,
|
|
31
|
+
* [RulesType.USER_ATTR]: true
|
|
32
|
+
* },
|
|
33
|
+
* activatedIds: ['rule-1', 'rule-2'],
|
|
34
|
+
* deactivatedIds: ['rule-3']
|
|
35
|
+
* });
|
|
36
|
+
*/
|
|
37
|
+
declare const evaluateRule: (rule: RulesCondition, options: RulesEvaluationOptions) => boolean;
|
|
13
38
|
declare const activedRulesConditions: (conditions: RulesCondition[], options?: RulesEvaluationOptions) => RulesCondition[];
|
|
14
39
|
|
|
15
|
-
export { activedRulesConditions, conditionsIsSame, filterConditionsByType, isConditionsActived };
|
|
40
|
+
export { activedRulesConditions, conditionsIsSame, evaluateRule, filterConditionsByType, isConditionsActived };
|
|
@@ -10,6 +10,31 @@ declare const isConditionsActived: (conditions: RulesCondition[]) => boolean;
|
|
|
10
10
|
* @returns Filtered conditions array
|
|
11
11
|
*/
|
|
12
12
|
declare const filterConditionsByType: (conditions: RulesCondition[], allowedTypes: RulesType[]) => RulesCondition[];
|
|
13
|
+
/**
|
|
14
|
+
* Evaluate and activate rules conditions with enhanced context and type control
|
|
15
|
+
*
|
|
16
|
+
* @param conditions - Array of rules conditions to evaluate
|
|
17
|
+
* @param options - Evaluation options including context, type control, and ID overrides
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* const result = await activedRulesConditions(conditions, {
|
|
21
|
+
* clientContext: {
|
|
22
|
+
* page_url: 'https://example.com',
|
|
23
|
+
* viewport_width: 1920,
|
|
24
|
+
* viewport_height: 1080
|
|
25
|
+
* },
|
|
26
|
+
* attributes: userAttributes,
|
|
27
|
+
* userAttributes: userData,
|
|
28
|
+
* typeControl: {
|
|
29
|
+
* [RulesType.CURRENT_PAGE]: true,
|
|
30
|
+
* [RulesType.TIME]: false,
|
|
31
|
+
* [RulesType.USER_ATTR]: true
|
|
32
|
+
* },
|
|
33
|
+
* activatedIds: ['rule-1', 'rule-2'],
|
|
34
|
+
* deactivatedIds: ['rule-3']
|
|
35
|
+
* });
|
|
36
|
+
*/
|
|
37
|
+
declare const evaluateRule: (rule: RulesCondition, options: RulesEvaluationOptions) => boolean;
|
|
13
38
|
declare const activedRulesConditions: (conditions: RulesCondition[], options?: RulesEvaluationOptions) => RulesCondition[];
|
|
14
39
|
|
|
15
|
-
export { activedRulesConditions, conditionsIsSame, filterConditionsByType, isConditionsActived };
|
|
40
|
+
export { activedRulesConditions, conditionsIsSame, evaluateRule, filterConditionsByType, isConditionsActived };
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
activedRulesConditions,
|
|
3
3
|
conditionsIsSame,
|
|
4
|
+
evaluateRule,
|
|
4
5
|
filterConditionsByType,
|
|
5
6
|
isConditionsActived,
|
|
6
7
|
isEqual
|
|
7
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-UNXDVBM3.js";
|
|
8
9
|
import "../chunk-YYIGUZNZ.js";
|
|
9
10
|
import "../chunk-PAESAL23.js";
|
|
10
11
|
import "../chunk-PBZSPV5R.js";
|
|
@@ -13,6 +14,7 @@ import "../chunk-XEO3YXBM.js";
|
|
|
13
14
|
export {
|
|
14
15
|
activedRulesConditions,
|
|
15
16
|
conditionsIsSame,
|
|
17
|
+
evaluateRule,
|
|
16
18
|
filterConditionsByType,
|
|
17
19
|
isConditionsActived,
|
|
18
20
|
isEqual
|
|
@@ -30,8 +30,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/conditions/index.ts
|
|
31
31
|
var conditions_exports = {};
|
|
32
32
|
__export(conditions_exports, {
|
|
33
|
+
activedRulesConditions: () => activedRulesConditions,
|
|
33
34
|
conditionsIsSame: () => conditionsIsSame,
|
|
34
35
|
evaluateAttributeCondition: () => evaluateAttributeCondition,
|
|
36
|
+
evaluateRule: () => evaluateRule,
|
|
35
37
|
evaluateTimeCondition: () => evaluateTimeCondition,
|
|
36
38
|
evaluateUrlCondition: () => evaluateUrlCondition,
|
|
37
39
|
filterConditionsByType: () => filterConditionsByType,
|
|
@@ -370,10 +372,53 @@ var filterConditionsByType = (conditions, allowedTypes) => {
|
|
|
370
372
|
return condition;
|
|
371
373
|
});
|
|
372
374
|
};
|
|
375
|
+
var evaluateRule = (rule, options) => {
|
|
376
|
+
var _a;
|
|
377
|
+
const { typeControl = {}, activatedIds, deactivatedIds } = options;
|
|
378
|
+
const ruleId = rule.id;
|
|
379
|
+
if (activatedIds == null ? void 0 : activatedIds.includes(ruleId))
|
|
380
|
+
return true;
|
|
381
|
+
if (deactivatedIds == null ? void 0 : deactivatedIds.includes(ruleId))
|
|
382
|
+
return false;
|
|
383
|
+
if (typeControl[rule.type] === false) {
|
|
384
|
+
return rule.actived || false;
|
|
385
|
+
}
|
|
386
|
+
switch (rule.type) {
|
|
387
|
+
case import_types2.RulesType.CURRENT_PAGE:
|
|
388
|
+
return evaluateUrlCondition(rule, ((_a = options.clientContext) == null ? void 0 : _a.page_url) || "");
|
|
389
|
+
case import_types2.RulesType.TIME:
|
|
390
|
+
return evaluateTimeCondition(rule);
|
|
391
|
+
case import_types2.RulesType.USER_ATTR:
|
|
392
|
+
case import_types2.RulesType.COMPANY_ATTR:
|
|
393
|
+
return evaluateAttributeCondition(
|
|
394
|
+
rule,
|
|
395
|
+
options.attributes || [],
|
|
396
|
+
options.userAttributes || {}
|
|
397
|
+
);
|
|
398
|
+
default:
|
|
399
|
+
return rule.actived || false;
|
|
400
|
+
}
|
|
401
|
+
};
|
|
402
|
+
var activedRulesConditions = (conditions, options = {}) => {
|
|
403
|
+
return conditions.map((rule) => {
|
|
404
|
+
if (rule.type === "group" && rule.conditions) {
|
|
405
|
+
return {
|
|
406
|
+
...rule,
|
|
407
|
+
conditions: activedRulesConditions(rule.conditions, options)
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
return {
|
|
411
|
+
...rule,
|
|
412
|
+
actived: evaluateRule(rule, options)
|
|
413
|
+
};
|
|
414
|
+
});
|
|
415
|
+
};
|
|
373
416
|
// Annotate the CommonJS export names for ESM import in node:
|
|
374
417
|
0 && (module.exports = {
|
|
418
|
+
activedRulesConditions,
|
|
375
419
|
conditionsIsSame,
|
|
376
420
|
evaluateAttributeCondition,
|
|
421
|
+
evaluateRule,
|
|
377
422
|
evaluateTimeCondition,
|
|
378
423
|
evaluateUrlCondition,
|
|
379
424
|
filterConditionsByType,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { conditionsIsSame, filterConditionsByType, isConditionsActived } from './condition.cjs';
|
|
1
|
+
export { activedRulesConditions, conditionsIsSame, evaluateRule, filterConditionsByType, isConditionsActived } from './condition.cjs';
|
|
2
2
|
export { evaluateUrlCondition, isMatchUrlPattern } from './url.cjs';
|
|
3
3
|
export { evaluateTimeCondition } from './time.cjs';
|
|
4
4
|
export { evaluateAttributeCondition } from './attribute.cjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { conditionsIsSame, filterConditionsByType, isConditionsActived } from './condition.js';
|
|
1
|
+
export { activedRulesConditions, conditionsIsSame, evaluateRule, filterConditionsByType, isConditionsActived } from './condition.js';
|
|
2
2
|
export { evaluateUrlCondition, isMatchUrlPattern } from './url.js';
|
|
3
3
|
export { evaluateTimeCondition } from './time.js';
|
|
4
4
|
export { evaluateAttributeCondition } from './attribute.js';
|
package/dist/conditions/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import "../chunk-7ODE2AIC.js";
|
|
2
2
|
import {
|
|
3
|
+
activedRulesConditions,
|
|
3
4
|
conditionsIsSame,
|
|
5
|
+
evaluateRule,
|
|
4
6
|
filterConditionsByType,
|
|
5
7
|
isConditionsActived,
|
|
6
8
|
isEqual
|
|
7
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-UNXDVBM3.js";
|
|
8
10
|
import {
|
|
9
11
|
evaluateUrlCondition,
|
|
10
12
|
isMatchUrlPattern
|
|
@@ -18,8 +20,10 @@ import {
|
|
|
18
20
|
} from "../chunk-CEK3SCQO.js";
|
|
19
21
|
import "../chunk-XEO3YXBM.js";
|
|
20
22
|
export {
|
|
23
|
+
activedRulesConditions,
|
|
21
24
|
conditionsIsSame,
|
|
22
25
|
evaluateAttributeCondition,
|
|
26
|
+
evaluateRule,
|
|
23
27
|
evaluateTimeCondition,
|
|
24
28
|
evaluateUrlCondition,
|
|
25
29
|
filterConditionsByType,
|
package/dist/index.cjs
CHANGED
|
@@ -39,6 +39,7 @@ __export(src_exports, {
|
|
|
39
39
|
ArrayProto: () => ArrayProto,
|
|
40
40
|
XMLHttpRequest: () => XMLHttpRequest,
|
|
41
41
|
absoluteUrl: () => absoluteUrl,
|
|
42
|
+
activedRulesConditions: () => activedRulesConditions,
|
|
42
43
|
assignableWindow: () => assignableWindow,
|
|
43
44
|
buildConfig: () => buildConfig,
|
|
44
45
|
cn: () => cn,
|
|
@@ -52,6 +53,7 @@ __export(src_exports, {
|
|
|
52
53
|
document: () => document,
|
|
53
54
|
evalCode: () => evalCode,
|
|
54
55
|
evaluateAttributeCondition: () => evaluateAttributeCondition,
|
|
56
|
+
evaluateRule: () => evaluateRule,
|
|
55
57
|
evaluateTimeCondition: () => evaluateTimeCondition,
|
|
56
58
|
evaluateUrlCondition: () => evaluateUrlCondition,
|
|
57
59
|
fetch: () => fetch,
|
|
@@ -1291,12 +1293,54 @@ var filterConditionsByType = (conditions, allowedTypes) => {
|
|
|
1291
1293
|
return condition;
|
|
1292
1294
|
});
|
|
1293
1295
|
};
|
|
1296
|
+
var evaluateRule = (rule, options) => {
|
|
1297
|
+
var _a;
|
|
1298
|
+
const { typeControl = {}, activatedIds, deactivatedIds } = options;
|
|
1299
|
+
const ruleId = rule.id;
|
|
1300
|
+
if (activatedIds == null ? void 0 : activatedIds.includes(ruleId))
|
|
1301
|
+
return true;
|
|
1302
|
+
if (deactivatedIds == null ? void 0 : deactivatedIds.includes(ruleId))
|
|
1303
|
+
return false;
|
|
1304
|
+
if (typeControl[rule.type] === false) {
|
|
1305
|
+
return rule.actived || false;
|
|
1306
|
+
}
|
|
1307
|
+
switch (rule.type) {
|
|
1308
|
+
case import_types5.RulesType.CURRENT_PAGE:
|
|
1309
|
+
return evaluateUrlCondition(rule, ((_a = options.clientContext) == null ? void 0 : _a.page_url) || "");
|
|
1310
|
+
case import_types5.RulesType.TIME:
|
|
1311
|
+
return evaluateTimeCondition(rule);
|
|
1312
|
+
case import_types5.RulesType.USER_ATTR:
|
|
1313
|
+
case import_types5.RulesType.COMPANY_ATTR:
|
|
1314
|
+
return evaluateAttributeCondition(
|
|
1315
|
+
rule,
|
|
1316
|
+
options.attributes || [],
|
|
1317
|
+
options.userAttributes || {}
|
|
1318
|
+
);
|
|
1319
|
+
default:
|
|
1320
|
+
return rule.actived || false;
|
|
1321
|
+
}
|
|
1322
|
+
};
|
|
1323
|
+
var activedRulesConditions = (conditions, options = {}) => {
|
|
1324
|
+
return conditions.map((rule) => {
|
|
1325
|
+
if (rule.type === "group" && rule.conditions) {
|
|
1326
|
+
return {
|
|
1327
|
+
...rule,
|
|
1328
|
+
conditions: activedRulesConditions(rule.conditions, options)
|
|
1329
|
+
};
|
|
1330
|
+
}
|
|
1331
|
+
return {
|
|
1332
|
+
...rule,
|
|
1333
|
+
actived: evaluateRule(rule, options)
|
|
1334
|
+
};
|
|
1335
|
+
});
|
|
1336
|
+
};
|
|
1294
1337
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1295
1338
|
0 && (module.exports = {
|
|
1296
1339
|
AbortController,
|
|
1297
1340
|
ArrayProto,
|
|
1298
1341
|
XMLHttpRequest,
|
|
1299
1342
|
absoluteUrl,
|
|
1343
|
+
activedRulesConditions,
|
|
1300
1344
|
assignableWindow,
|
|
1301
1345
|
buildConfig,
|
|
1302
1346
|
cn,
|
|
@@ -1310,6 +1354,7 @@ var filterConditionsByType = (conditions, allowedTypes) => {
|
|
|
1310
1354
|
document,
|
|
1311
1355
|
evalCode,
|
|
1312
1356
|
evaluateAttributeCondition,
|
|
1357
|
+
evaluateRule,
|
|
1313
1358
|
evaluateTimeCondition,
|
|
1314
1359
|
evaluateUrlCondition,
|
|
1315
1360
|
fetch,
|
package/dist/index.d.cts
CHANGED
|
@@ -9,7 +9,7 @@ export { buildConfig, defaultContentConfig, isPublishedAtLeastOneEnvironment, is
|
|
|
9
9
|
export { deepClone } 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, filterConditionsByType, isConditionsActived } from './conditions/condition.cjs';
|
|
12
|
+
export { activedRulesConditions, conditionsIsSame, evaluateRule, filterConditionsByType, isConditionsActived } 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 } 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, filterConditionsByType, isConditionsActived } from './conditions/condition.js';
|
|
12
|
+
export { activedRulesConditions, conditionsIsSame, evaluateRule, filterConditionsByType, isConditionsActived } 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
|
@@ -9,11 +9,13 @@ import {
|
|
|
9
9
|
deepClone
|
|
10
10
|
} from "./chunk-2AEGAICC.js";
|
|
11
11
|
import {
|
|
12
|
+
activedRulesConditions,
|
|
12
13
|
conditionsIsSame,
|
|
14
|
+
evaluateRule,
|
|
13
15
|
filterConditionsByType,
|
|
14
16
|
isConditionsActived,
|
|
15
17
|
isEqual
|
|
16
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-UNXDVBM3.js";
|
|
17
19
|
import {
|
|
18
20
|
evaluateUrlCondition,
|
|
19
21
|
isMatchUrlPattern
|
|
@@ -115,6 +117,7 @@ export {
|
|
|
115
117
|
ArrayProto,
|
|
116
118
|
XMLHttpRequest,
|
|
117
119
|
absoluteUrl,
|
|
120
|
+
activedRulesConditions,
|
|
118
121
|
assignableWindow,
|
|
119
122
|
buildConfig,
|
|
120
123
|
cn,
|
|
@@ -128,6 +131,7 @@ export {
|
|
|
128
131
|
document,
|
|
129
132
|
evalCode,
|
|
130
133
|
evaluateAttributeCondition,
|
|
134
|
+
evaluateRule,
|
|
131
135
|
evaluateTimeCondition,
|
|
132
136
|
evaluateUrlCondition,
|
|
133
137
|
fetch,
|