@usertour/helpers 0.0.29 → 0.0.30

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.
@@ -143,20 +143,27 @@ var evaluateTimeCondition = (rules) => {
143
143
  // src/conditions/attribute.ts
144
144
  var import_types = require("@usertour/types");
145
145
  var import_date_fns2 = require("date-fns");
146
- function evaluateAttributeCondition(condition, attributes, userAttributes) {
146
+ function evaluateAttributeCondition(condition, options) {
147
147
  const { data } = condition;
148
148
  if (!data) {
149
149
  return false;
150
150
  }
151
151
  const { logic, value, attrId, value2, listValues = [] } = data;
152
- if (!attrId) {
152
+ const {
153
+ attributes,
154
+ userAttributes = {},
155
+ companyAttributes = {},
156
+ membershipAttributes = {}
157
+ } = options;
158
+ if (!attrId || !attributes) {
153
159
  return false;
154
160
  }
155
161
  const attr = attributes.find((attr2) => attr2.id === attrId);
156
162
  if (!attr) {
157
163
  return false;
158
164
  }
159
- const actualValue = getAttributeValue(attr.codeName, userAttributes);
165
+ const bizAttributes = attr.bizType === import_types.AttributeBizTypes.Company ? companyAttributes : attr.bizType === import_types.AttributeBizTypes.Membership ? membershipAttributes : userAttributes;
166
+ const actualValue = getAttributeValue(attr.codeName, bizAttributes);
160
167
  if (attr.dataType === import_types.BizAttributeTypes.String) {
161
168
  return evaluateStringCondition(logic, actualValue, value);
162
169
  }
@@ -174,8 +181,8 @@ function evaluateAttributeCondition(condition, attributes, userAttributes) {
174
181
  }
175
182
  return false;
176
183
  }
177
- function getAttributeValue(codeName, userAttributes) {
178
- return userAttributes == null ? void 0 : userAttributes[codeName];
184
+ function getAttributeValue(codeName, attributes) {
185
+ return attributes == null ? void 0 : attributes[codeName];
179
186
  }
180
187
  function evaluateStringCondition(logic, actualValue, expectedValue) {
181
188
  const stringValue = actualValue === null || actualValue === void 0 ? "" : String(actualValue);
@@ -373,11 +380,7 @@ var evaluateRule = async (condition, options) => {
373
380
  case import_types2.RulesType.TIME:
374
381
  return evaluateTimeCondition(condition);
375
382
  case import_types2.RulesType.USER_ATTR:
376
- return evaluateAttributeCondition(
377
- condition,
378
- options.attributes || [],
379
- options.userAttributes || {}
380
- );
383
+ return evaluateAttributeCondition(condition, options);
381
384
  default:
382
385
  return condition.actived || false;
383
386
  }
@@ -649,8 +652,8 @@ describe("evaluateRulesConditions", () => {
649
652
  {
650
653
  id: "email",
651
654
  codeName: "email",
652
- dataType: 2
653
- // String
655
+ dataType: import_types3.BizAttributeTypes.String,
656
+ bizType: import_types3.AttributeBizTypes.User
654
657
  }
655
658
  ],
656
659
  userAttributes: {
@@ -2,15 +2,19 @@ import {
2
2
  evaluateRulesConditions,
3
3
  filterConditionsByType,
4
4
  isConditionsActived
5
- } from "../chunk-E2IJQFKH.js";
5
+ } from "../chunk-RVCKVUQF.js";
6
6
  import "../chunk-YYIGUZNZ.js";
7
7
  import "../chunk-PAESAL23.js";
8
- import "../chunk-PBZSPV5R.js";
8
+ import "../chunk-P46FJFKP.js";
9
9
  import "../chunk-CEK3SCQO.js";
10
10
  import "../chunk-XEO3YXBM.js";
11
11
 
12
12
  // src/__tests__/condition.test.ts
13
- import { RulesType } from "@usertour/types";
13
+ import {
14
+ RulesType,
15
+ BizAttributeTypes,
16
+ AttributeBizTypes
17
+ } from "@usertour/types";
14
18
  describe("filterConditionsByType", () => {
15
19
  test("should return empty array when no conditions provided", () => {
16
20
  const result = filterConditionsByType([], [RulesType.CURRENT_PAGE, RulesType.TIME]);
@@ -259,8 +263,8 @@ describe("evaluateRulesConditions", () => {
259
263
  {
260
264
  id: "email",
261
265
  codeName: "email",
262
- dataType: 2
263
- // String
266
+ dataType: BizAttributeTypes.String,
267
+ bizType: AttributeBizTypes.User
264
268
  }
265
269
  ],
266
270
  userAttributes: {
@@ -1,14 +1,17 @@
1
1
  // src/conditions/attribute.ts
2
- import { BizAttributeTypes } from "@usertour/types";
2
+ import {
3
+ BizAttributeTypes,
4
+ AttributeBizTypes
5
+ } from "@usertour/types";
3
6
  import { subDays, startOfDay, endOfDay } from "date-fns";
4
- function evaluateFilterConditions(conditions, attributes, userAttributes) {
7
+ function evaluateFilterConditions(conditions, options) {
5
8
  if (!conditions || !conditions.length) {
6
9
  return true;
7
10
  }
8
- const result = evaluateAttributeConditionsGroup(conditions, attributes, userAttributes);
11
+ const result = evaluateAttributeConditionsGroup(conditions, options);
9
12
  return evaluateFilterResult(result);
10
13
  }
11
- function evaluateAttributeConditionsGroup(conditions, attributes, userAttributes) {
14
+ function evaluateAttributeConditionsGroup(conditions, options) {
12
15
  if (!conditions || !conditions.length) {
13
16
  return false;
14
17
  }
@@ -16,7 +19,7 @@ function evaluateAttributeConditionsGroup(conditions, attributes, userAttributes
16
19
  const OR = [];
17
20
  for (const condition of conditions) {
18
21
  const { operators } = condition;
19
- const item = condition.type !== "group" ? evaluateAttributeCondition(condition, attributes, userAttributes) : evaluateAttributeConditionsGroup(condition.conditions || [], attributes, userAttributes);
22
+ const item = condition.type !== "group" ? evaluateAttributeCondition(condition, options) : evaluateAttributeConditionsGroup(condition.conditions || [], options);
20
23
  if (!item) {
21
24
  continue;
22
25
  }
@@ -38,20 +41,27 @@ function evaluateAttributeConditionsGroup(conditions, attributes, userAttributes
38
41
  }
39
42
  return filter;
40
43
  }
41
- function evaluateAttributeCondition(condition, attributes, userAttributes) {
44
+ function evaluateAttributeCondition(condition, options) {
42
45
  const { data } = condition;
43
46
  if (!data) {
44
47
  return false;
45
48
  }
46
49
  const { logic, value, attrId, value2, listValues = [] } = data;
47
- if (!attrId) {
50
+ const {
51
+ attributes,
52
+ userAttributes = {},
53
+ companyAttributes = {},
54
+ membershipAttributes = {}
55
+ } = options;
56
+ if (!attrId || !attributes) {
48
57
  return false;
49
58
  }
50
59
  const attr = attributes.find((attr2) => attr2.id === attrId);
51
60
  if (!attr) {
52
61
  return false;
53
62
  }
54
- const actualValue = getAttributeValue(attr.codeName, userAttributes);
63
+ const bizAttributes = attr.bizType === AttributeBizTypes.Company ? companyAttributes : attr.bizType === AttributeBizTypes.Membership ? membershipAttributes : userAttributes;
64
+ const actualValue = getAttributeValue(attr.codeName, bizAttributes);
55
65
  if (attr.dataType === BizAttributeTypes.String) {
56
66
  return evaluateStringCondition(logic, actualValue, value);
57
67
  }
@@ -69,8 +79,8 @@ function evaluateAttributeCondition(condition, attributes, userAttributes) {
69
79
  }
70
80
  return false;
71
81
  }
72
- function getAttributeValue(codeName, userAttributes) {
73
- return userAttributes == null ? void 0 : userAttributes[codeName];
82
+ function getAttributeValue(codeName, attributes) {
83
+ return attributes == null ? void 0 : attributes[codeName];
74
84
  }
75
85
  function evaluateStringCondition(logic, actualValue, expectedValue) {
76
86
  const stringValue = actualValue === null || actualValue === void 0 ? "" : String(actualValue);
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-YYIGUZNZ.js";
4
4
  import {
5
5
  evaluateAttributeCondition
6
- } from "./chunk-PBZSPV5R.js";
6
+ } from "./chunk-P46FJFKP.js";
7
7
  import {
8
8
  evaluateTimeCondition
9
9
  } from "./chunk-CEK3SCQO.js";
@@ -66,11 +66,7 @@ var evaluateRule = async (condition, options) => {
66
66
  case RulesType.TIME:
67
67
  return evaluateTimeCondition(condition);
68
68
  case RulesType.USER_ATTR:
69
- return evaluateAttributeCondition(
70
- condition,
71
- options.attributes || [],
72
- options.userAttributes || {}
73
- );
69
+ return evaluateAttributeCondition(condition, options);
74
70
  default:
75
71
  return condition.actived || false;
76
72
  }
@@ -26,14 +26,14 @@ __export(attribute_exports, {
26
26
  module.exports = __toCommonJS(attribute_exports);
27
27
  var import_types = require("@usertour/types");
28
28
  var import_date_fns = require("date-fns");
29
- function evaluateFilterConditions(conditions, attributes, userAttributes) {
29
+ function evaluateFilterConditions(conditions, options) {
30
30
  if (!conditions || !conditions.length) {
31
31
  return true;
32
32
  }
33
- const result = evaluateAttributeConditionsGroup(conditions, attributes, userAttributes);
33
+ const result = evaluateAttributeConditionsGroup(conditions, options);
34
34
  return evaluateFilterResult(result);
35
35
  }
36
- function evaluateAttributeConditionsGroup(conditions, attributes, userAttributes) {
36
+ function evaluateAttributeConditionsGroup(conditions, options) {
37
37
  if (!conditions || !conditions.length) {
38
38
  return false;
39
39
  }
@@ -41,7 +41,7 @@ function evaluateAttributeConditionsGroup(conditions, attributes, userAttributes
41
41
  const OR = [];
42
42
  for (const condition of conditions) {
43
43
  const { operators } = condition;
44
- const item = condition.type !== "group" ? evaluateAttributeCondition(condition, attributes, userAttributes) : evaluateAttributeConditionsGroup(condition.conditions || [], attributes, userAttributes);
44
+ const item = condition.type !== "group" ? evaluateAttributeCondition(condition, options) : evaluateAttributeConditionsGroup(condition.conditions || [], options);
45
45
  if (!item) {
46
46
  continue;
47
47
  }
@@ -63,20 +63,27 @@ function evaluateAttributeConditionsGroup(conditions, attributes, userAttributes
63
63
  }
64
64
  return filter;
65
65
  }
66
- function evaluateAttributeCondition(condition, attributes, userAttributes) {
66
+ function evaluateAttributeCondition(condition, options) {
67
67
  const { data } = condition;
68
68
  if (!data) {
69
69
  return false;
70
70
  }
71
71
  const { logic, value, attrId, value2, listValues = [] } = data;
72
- if (!attrId) {
72
+ const {
73
+ attributes,
74
+ userAttributes = {},
75
+ companyAttributes = {},
76
+ membershipAttributes = {}
77
+ } = options;
78
+ if (!attrId || !attributes) {
73
79
  return false;
74
80
  }
75
81
  const attr = attributes.find((attr2) => attr2.id === attrId);
76
82
  if (!attr) {
77
83
  return false;
78
84
  }
79
- const actualValue = getAttributeValue(attr.codeName, userAttributes);
85
+ const bizAttributes = attr.bizType === import_types.AttributeBizTypes.Company ? companyAttributes : attr.bizType === import_types.AttributeBizTypes.Membership ? membershipAttributes : userAttributes;
86
+ const actualValue = getAttributeValue(attr.codeName, bizAttributes);
80
87
  if (attr.dataType === import_types.BizAttributeTypes.String) {
81
88
  return evaluateStringCondition(logic, actualValue, value);
82
89
  }
@@ -94,8 +101,8 @@ function evaluateAttributeCondition(condition, attributes, userAttributes) {
94
101
  }
95
102
  return false;
96
103
  }
97
- function getAttributeValue(codeName, userAttributes) {
98
- return userAttributes == null ? void 0 : userAttributes[codeName];
104
+ function getAttributeValue(codeName, attributes) {
105
+ return attributes == null ? void 0 : attributes[codeName];
99
106
  }
100
107
  function evaluateStringCondition(logic, actualValue, expectedValue) {
101
108
  const stringValue = actualValue === null || actualValue === void 0 ? "" : String(actualValue);
@@ -1,20 +1,18 @@
1
- import { RulesCondition, SimpleAttribute, UserTourTypes } from '@usertour/types';
1
+ import { RulesCondition, RulesEvaluationOptions } from '@usertour/types';
2
2
 
3
3
  /**
4
4
  * Evaluate filter conditions and return boolean result
5
5
  * @param conditions - Filter conditions to evaluate
6
- * @param attributes - Available attributes
7
- * @param context - Filter context with user attributes
6
+ * @param options - Evaluation options including attributes, user attributes, company attributes, and membership attributes
8
7
  * @returns boolean indicating if conditions are met
9
8
  */
10
- declare function evaluateFilterConditions(conditions: RulesCondition[], attributes: SimpleAttribute[], userAttributes: UserTourTypes.Attributes): boolean;
9
+ declare function evaluateFilterConditions(conditions: RulesCondition[], options: Pick<RulesEvaluationOptions, 'attributes' | 'userAttributes' | 'companyAttributes' | 'membershipAttributes'>): boolean;
11
10
  /**
12
11
  * Evaluate a single attribute condition
13
12
  * @param condition - Single attribute filter condition
14
- * @param attributes - Available attributes
15
- * @param context - Filter context with user attributes
13
+ * @param options - Evaluation options including attributes, user attributes, company attributes, and membership attributes
16
14
  * @returns Evaluation result (boolean or complex structure)
17
15
  */
18
- declare function evaluateAttributeCondition(condition: RulesCondition, attributes: SimpleAttribute[], userAttributes: UserTourTypes.Attributes): any;
16
+ declare function evaluateAttributeCondition(condition: RulesCondition, options: RulesEvaluationOptions): any;
19
17
 
20
18
  export { evaluateAttributeCondition, evaluateFilterConditions };
@@ -1,20 +1,18 @@
1
- import { RulesCondition, SimpleAttribute, UserTourTypes } from '@usertour/types';
1
+ import { RulesCondition, RulesEvaluationOptions } from '@usertour/types';
2
2
 
3
3
  /**
4
4
  * Evaluate filter conditions and return boolean result
5
5
  * @param conditions - Filter conditions to evaluate
6
- * @param attributes - Available attributes
7
- * @param context - Filter context with user attributes
6
+ * @param options - Evaluation options including attributes, user attributes, company attributes, and membership attributes
8
7
  * @returns boolean indicating if conditions are met
9
8
  */
10
- declare function evaluateFilterConditions(conditions: RulesCondition[], attributes: SimpleAttribute[], userAttributes: UserTourTypes.Attributes): boolean;
9
+ declare function evaluateFilterConditions(conditions: RulesCondition[], options: Pick<RulesEvaluationOptions, 'attributes' | 'userAttributes' | 'companyAttributes' | 'membershipAttributes'>): boolean;
11
10
  /**
12
11
  * Evaluate a single attribute condition
13
12
  * @param condition - Single attribute filter condition
14
- * @param attributes - Available attributes
15
- * @param context - Filter context with user attributes
13
+ * @param options - Evaluation options including attributes, user attributes, company attributes, and membership attributes
16
14
  * @returns Evaluation result (boolean or complex structure)
17
15
  */
18
- declare function evaluateAttributeCondition(condition: RulesCondition, attributes: SimpleAttribute[], userAttributes: UserTourTypes.Attributes): any;
16
+ declare function evaluateAttributeCondition(condition: RulesCondition, options: RulesEvaluationOptions): any;
19
17
 
20
18
  export { evaluateAttributeCondition, evaluateFilterConditions };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  evaluateAttributeCondition,
3
3
  evaluateFilterConditions
4
- } from "../chunk-PBZSPV5R.js";
4
+ } from "../chunk-P46FJFKP.js";
5
5
  import "../chunk-XEO3YXBM.js";
6
6
  export {
7
7
  evaluateAttributeCondition,
@@ -155,20 +155,27 @@ var evaluateTimeCondition = (rules) => {
155
155
  // src/conditions/attribute.ts
156
156
  var import_types = require("@usertour/types");
157
157
  var import_date_fns2 = require("date-fns");
158
- function evaluateAttributeCondition(condition, attributes, userAttributes) {
158
+ function evaluateAttributeCondition(condition, options) {
159
159
  const { data } = condition;
160
160
  if (!data) {
161
161
  return false;
162
162
  }
163
163
  const { logic, value, attrId, value2, listValues = [] } = data;
164
- if (!attrId) {
164
+ const {
165
+ attributes,
166
+ userAttributes = {},
167
+ companyAttributes = {},
168
+ membershipAttributes = {}
169
+ } = options;
170
+ if (!attrId || !attributes) {
165
171
  return false;
166
172
  }
167
173
  const attr = attributes.find((attr2) => attr2.id === attrId);
168
174
  if (!attr) {
169
175
  return false;
170
176
  }
171
- const actualValue = getAttributeValue(attr.codeName, userAttributes);
177
+ const bizAttributes = attr.bizType === import_types.AttributeBizTypes.Company ? companyAttributes : attr.bizType === import_types.AttributeBizTypes.Membership ? membershipAttributes : userAttributes;
178
+ const actualValue = getAttributeValue(attr.codeName, bizAttributes);
172
179
  if (attr.dataType === import_types.BizAttributeTypes.String) {
173
180
  return evaluateStringCondition(logic, actualValue, value);
174
181
  }
@@ -186,8 +193,8 @@ function evaluateAttributeCondition(condition, attributes, userAttributes) {
186
193
  }
187
194
  return false;
188
195
  }
189
- function getAttributeValue(codeName, userAttributes) {
190
- return userAttributes == null ? void 0 : userAttributes[codeName];
196
+ function getAttributeValue(codeName, attributes) {
197
+ return attributes == null ? void 0 : attributes[codeName];
191
198
  }
192
199
  function evaluateStringCondition(logic, actualValue, expectedValue) {
193
200
  const stringValue = actualValue === null || actualValue === void 0 ? "" : String(actualValue);
@@ -388,11 +395,7 @@ var evaluateRule = async (condition, options) => {
388
395
  case import_types2.RulesType.TIME:
389
396
  return evaluateTimeCondition(condition);
390
397
  case import_types2.RulesType.USER_ATTR:
391
- return evaluateAttributeCondition(
392
- condition,
393
- options.attributes || [],
394
- options.userAttributes || {}
395
- );
398
+ return evaluateAttributeCondition(condition, options);
396
399
  default:
397
400
  return condition.actived || false;
398
401
  }
@@ -5,10 +5,10 @@ import {
5
5
  filterConditionsByType,
6
6
  isConditionsActived,
7
7
  isEqual
8
- } from "../chunk-E2IJQFKH.js";
8
+ } from "../chunk-RVCKVUQF.js";
9
9
  import "../chunk-YYIGUZNZ.js";
10
10
  import "../chunk-PAESAL23.js";
11
- import "../chunk-PBZSPV5R.js";
11
+ import "../chunk-P46FJFKP.js";
12
12
  import "../chunk-CEK3SCQO.js";
13
13
  import "../chunk-XEO3YXBM.js";
14
14
  export {
@@ -161,20 +161,27 @@ var evaluateTimeCondition = (rules) => {
161
161
  // src/conditions/attribute.ts
162
162
  var import_types = require("@usertour/types");
163
163
  var import_date_fns2 = require("date-fns");
164
- function evaluateAttributeCondition(condition, attributes, userAttributes) {
164
+ function evaluateAttributeCondition(condition, options) {
165
165
  const { data } = condition;
166
166
  if (!data) {
167
167
  return false;
168
168
  }
169
169
  const { logic, value, attrId, value2, listValues = [] } = data;
170
- if (!attrId) {
170
+ const {
171
+ attributes,
172
+ userAttributes = {},
173
+ companyAttributes = {},
174
+ membershipAttributes = {}
175
+ } = options;
176
+ if (!attrId || !attributes) {
171
177
  return false;
172
178
  }
173
179
  const attr = attributes.find((attr2) => attr2.id === attrId);
174
180
  if (!attr) {
175
181
  return false;
176
182
  }
177
- const actualValue = getAttributeValue(attr.codeName, userAttributes);
183
+ const bizAttributes = attr.bizType === import_types.AttributeBizTypes.Company ? companyAttributes : attr.bizType === import_types.AttributeBizTypes.Membership ? membershipAttributes : userAttributes;
184
+ const actualValue = getAttributeValue(attr.codeName, bizAttributes);
178
185
  if (attr.dataType === import_types.BizAttributeTypes.String) {
179
186
  return evaluateStringCondition(logic, actualValue, value);
180
187
  }
@@ -192,8 +199,8 @@ function evaluateAttributeCondition(condition, attributes, userAttributes) {
192
199
  }
193
200
  return false;
194
201
  }
195
- function getAttributeValue(codeName, userAttributes) {
196
- return userAttributes == null ? void 0 : userAttributes[codeName];
202
+ function getAttributeValue(codeName, attributes) {
203
+ return attributes == null ? void 0 : attributes[codeName];
197
204
  }
198
205
  function evaluateStringCondition(logic, actualValue, expectedValue) {
199
206
  const stringValue = actualValue === null || actualValue === void 0 ? "" : String(actualValue);
@@ -394,11 +401,7 @@ var evaluateRule = async (condition, options) => {
394
401
  case import_types2.RulesType.TIME:
395
402
  return evaluateTimeCondition(condition);
396
403
  case import_types2.RulesType.USER_ATTR:
397
- return evaluateAttributeCondition(
398
- condition,
399
- options.attributes || [],
400
- options.userAttributes || {}
401
- );
404
+ return evaluateAttributeCondition(condition, options);
402
405
  default:
403
406
  return condition.actived || false;
404
407
  }
@@ -6,7 +6,7 @@ import {
6
6
  filterConditionsByType,
7
7
  isConditionsActived,
8
8
  isEqual
9
- } from "../chunk-E2IJQFKH.js";
9
+ } from "../chunk-RVCKVUQF.js";
10
10
  import {
11
11
  evaluateUrlCondition,
12
12
  isMatchUrlPattern
@@ -14,7 +14,7 @@ import {
14
14
  import "../chunk-PAESAL23.js";
15
15
  import {
16
16
  evaluateAttributeCondition
17
- } from "../chunk-PBZSPV5R.js";
17
+ } from "../chunk-P46FJFKP.js";
18
18
  import {
19
19
  evaluateTimeCondition
20
20
  } from "../chunk-CEK3SCQO.js";
package/dist/index.cjs CHANGED
@@ -1127,20 +1127,27 @@ var evaluateTimeCondition = (rules) => {
1127
1127
  // src/conditions/attribute.ts
1128
1128
  var import_types4 = require("@usertour/types");
1129
1129
  var import_date_fns2 = require("date-fns");
1130
- function evaluateAttributeCondition(condition, attributes, userAttributes) {
1130
+ function evaluateAttributeCondition(condition, options) {
1131
1131
  const { data } = condition;
1132
1132
  if (!data) {
1133
1133
  return false;
1134
1134
  }
1135
1135
  const { logic, value, attrId, value2, listValues = [] } = data;
1136
- if (!attrId) {
1136
+ const {
1137
+ attributes,
1138
+ userAttributes = {},
1139
+ companyAttributes = {},
1140
+ membershipAttributes = {}
1141
+ } = options;
1142
+ if (!attrId || !attributes) {
1137
1143
  return false;
1138
1144
  }
1139
1145
  const attr = attributes.find((attr2) => attr2.id === attrId);
1140
1146
  if (!attr) {
1141
1147
  return false;
1142
1148
  }
1143
- const actualValue = getAttributeValue(attr.codeName, userAttributes);
1149
+ const bizAttributes = attr.bizType === import_types4.AttributeBizTypes.Company ? companyAttributes : attr.bizType === import_types4.AttributeBizTypes.Membership ? membershipAttributes : userAttributes;
1150
+ const actualValue = getAttributeValue(attr.codeName, bizAttributes);
1144
1151
  if (attr.dataType === import_types4.BizAttributeTypes.String) {
1145
1152
  return evaluateStringCondition(logic, actualValue, value);
1146
1153
  }
@@ -1158,8 +1165,8 @@ function evaluateAttributeCondition(condition, attributes, userAttributes) {
1158
1165
  }
1159
1166
  return false;
1160
1167
  }
1161
- function getAttributeValue(codeName, userAttributes) {
1162
- return userAttributes == null ? void 0 : userAttributes[codeName];
1168
+ function getAttributeValue(codeName, attributes) {
1169
+ return attributes == null ? void 0 : attributes[codeName];
1163
1170
  }
1164
1171
  function evaluateStringCondition(logic, actualValue, expectedValue) {
1165
1172
  const stringValue = actualValue === null || actualValue === void 0 ? "" : String(actualValue);
@@ -1360,11 +1367,7 @@ var evaluateRule = async (condition, options) => {
1360
1367
  case import_types5.RulesType.TIME:
1361
1368
  return evaluateTimeCondition(condition);
1362
1369
  case import_types5.RulesType.USER_ATTR:
1363
- return evaluateAttributeCondition(
1364
- condition,
1365
- options.attributes || [],
1366
- options.userAttributes || {}
1367
- );
1370
+ return evaluateAttributeCondition(condition, options);
1368
1371
  default:
1369
1372
  return condition.actived || false;
1370
1373
  }
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  filterConditionsByType,
18
18
  isConditionsActived,
19
19
  isEqual
20
- } from "./chunk-E2IJQFKH.js";
20
+ } from "./chunk-RVCKVUQF.js";
21
21
  import {
22
22
  evaluateUrlCondition,
23
23
  isMatchUrlPattern
@@ -25,7 +25,7 @@ import {
25
25
  import "./chunk-PAESAL23.js";
26
26
  import {
27
27
  evaluateAttributeCondition
28
- } from "./chunk-PBZSPV5R.js";
28
+ } from "./chunk-P46FJFKP.js";
29
29
  import {
30
30
  evaluateTimeCondition
31
31
  } from "./chunk-CEK3SCQO.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usertour/helpers",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
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.17",
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",