@tracelog/lib 2.2.0 → 2.2.1

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.
@@ -41,12 +41,11 @@ var MAX_CUSTOM_EVENT_STRING_SIZE = 8 * 1024;
41
41
  var MAX_CUSTOM_EVENT_KEYS = 10;
42
42
  var MAX_CUSTOM_EVENT_ARRAY_SIZE = 10;
43
43
  var MAX_NESTED_OBJECT_KEYS = 20;
44
- var MAX_METADATA_NESTING_DEPTH = 1;
45
44
  var MAX_TEXT_LENGTH = 255;
46
45
  var MAX_STRING_LENGTH = 1e3;
47
46
  var MAX_STRING_LENGTH_IN_ARRAY = 500;
48
47
  var MAX_ARRAY_LENGTH = 100;
49
- var MAX_OBJECT_DEPTH = 3;
48
+ var MAX_OBJECT_DEPTH = 10;
50
49
  var PRECISION_TWO_DECIMALS = 2;
51
50
  var MAX_BEACON_PAYLOAD_SIZE = 64 * 1024;
52
51
  var MAX_FINGERPRINTS = 1500;
@@ -558,7 +557,7 @@ var LONG_TASK_THROTTLE_MS = 1e3;
558
557
  var MAX_NAVIGATION_HISTORY = 50;
559
558
 
560
559
  // package.json
561
- var version = "2.1.2";
560
+ var version = "2.2.0";
562
561
 
563
562
  // src/constants/version.constants.ts
564
563
  var LIB_VERSION = version;
@@ -854,9 +853,6 @@ var sanitizeString = (value) => {
854
853
  return result;
855
854
  };
856
855
  var sanitizeValue = (value, depth = 0) => {
857
- if (depth > MAX_OBJECT_DEPTH) {
858
- return null;
859
- }
860
856
  if (value === null || value === void 0) {
861
857
  return null;
862
858
  }
@@ -872,6 +868,9 @@ var sanitizeValue = (value, depth = 0) => {
872
868
  if (typeof value === "boolean") {
873
869
  return value;
874
870
  }
871
+ if (depth > MAX_OBJECT_DEPTH) {
872
+ return null;
873
+ }
875
874
  if (Array.isArray(value)) {
876
875
  const limitedArray = value.slice(0, MAX_ARRAY_LENGTH);
877
876
  const sanitizedArray = limitedArray.map((item) => sanitizeValue(item, depth + 1)).filter((item) => item !== null);
@@ -1130,69 +1129,34 @@ var validateAndNormalizeConfig = (config) => {
1130
1129
  };
1131
1130
 
1132
1131
  // src/utils/validations/type-guards.utils.ts
1133
- var isValidArrayItem = (item) => {
1134
- if (typeof item === "string") {
1132
+ var isSerializable = (value, seen = /* @__PURE__ */ new Set()) => {
1133
+ if (value === null || value === void 0) {
1135
1134
  return true;
1136
1135
  }
1137
- if (typeof item === "object" && item !== null && !Array.isArray(item)) {
1138
- const entries = Object.entries(item);
1139
- if (entries.length > MAX_NESTED_OBJECT_KEYS) {
1140
- return false;
1141
- }
1142
- for (const [, value] of entries) {
1143
- if (value === null || value === void 0) {
1144
- continue;
1145
- }
1146
- const type = typeof value;
1147
- if (type !== "string" && type !== "number" && type !== "boolean") {
1148
- return false;
1149
- }
1150
- }
1136
+ const type = typeof value;
1137
+ if (type === "string" || type === "number" || type === "boolean") {
1151
1138
  return true;
1152
1139
  }
1153
- return false;
1154
- };
1155
- var isOnlyPrimitiveFields = (object, depth = 0) => {
1156
- if (typeof object !== "object" || object === null) {
1140
+ if (type === "function" || type === "symbol" || type === "bigint") {
1157
1141
  return false;
1158
1142
  }
1159
- if (depth > MAX_METADATA_NESTING_DEPTH) {
1143
+ if (seen.has(value)) {
1160
1144
  return false;
1161
1145
  }
1162
- for (const value of Object.values(object)) {
1163
- if (value === null || value === void 0) {
1164
- continue;
1165
- }
1166
- const type = typeof value;
1167
- if (type === "string" || type === "number" || type === "boolean") {
1168
- continue;
1169
- }
1170
- if (Array.isArray(value)) {
1171
- if (value.length === 0) {
1172
- continue;
1173
- }
1174
- const firstItem = value[0];
1175
- const isStringArray = typeof firstItem === "string";
1176
- if (isStringArray) {
1177
- if (!value.every((item) => typeof item === "string")) {
1178
- return false;
1179
- }
1180
- } else {
1181
- if (!value.every((item) => isValidArrayItem(item))) {
1182
- return false;
1183
- }
1184
- }
1185
- continue;
1186
- }
1187
- if (type === "object" && depth === 0) {
1188
- if (!isOnlyPrimitiveFields(value, depth + 1)) {
1189
- return false;
1190
- }
1191
- continue;
1192
- }
1146
+ seen.add(value);
1147
+ if (Array.isArray(value)) {
1148
+ return value.every((item) => isSerializable(item, seen));
1149
+ }
1150
+ if (type === "object") {
1151
+ return Object.values(value).every((v) => isSerializable(v, seen));
1152
+ }
1153
+ return false;
1154
+ };
1155
+ var isOnlyPrimitiveFields = (object) => {
1156
+ if (typeof object !== "object" || object === null) {
1193
1157
  return false;
1194
1158
  }
1195
- return true;
1159
+ return isSerializable(object);
1196
1160
  };
1197
1161
 
1198
1162
  // src/utils/validations/metadata-validations.utils.ts
@@ -6706,7 +6670,6 @@ exports.MAX_CUSTOM_EVENT_ARRAY_SIZE = MAX_CUSTOM_EVENT_ARRAY_SIZE;
6706
6670
  exports.MAX_CUSTOM_EVENT_KEYS = MAX_CUSTOM_EVENT_KEYS;
6707
6671
  exports.MAX_CUSTOM_EVENT_NAME_LENGTH = MAX_CUSTOM_EVENT_NAME_LENGTH;
6708
6672
  exports.MAX_CUSTOM_EVENT_STRING_SIZE = MAX_CUSTOM_EVENT_STRING_SIZE;
6709
- exports.MAX_METADATA_NESTING_DEPTH = MAX_METADATA_NESTING_DEPTH;
6710
6673
  exports.MAX_NESTED_OBJECT_KEYS = MAX_NESTED_OBJECT_KEYS;
6711
6674
  exports.MAX_STRING_LENGTH = MAX_STRING_LENGTH;
6712
6675
  exports.MAX_STRING_LENGTH_IN_ARRAY = MAX_STRING_LENGTH_IN_ARRAY;