@uniformdev/context 20.20.3 → 20.22.1-alpha.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/index.d.mts CHANGED
@@ -56,6 +56,12 @@ type CookieTransitionDataStoreOptions = {
56
56
  * local storage is the master copy. Defaults to SameSite=Lax.
57
57
  */
58
58
  cookieAttributes?: Cookies.CookieAttributes;
59
+ /**
60
+ * Whether to omit dimensions with a score of zero from the transition store state.
61
+ * When enabled, dimensions with an explicit score of zero will not be included in the cookie.
62
+ * Defaults to false.
63
+ */
64
+ omitZeroScores?: boolean;
59
65
  };
60
66
  declare const UNIFORM_DEFAULT_COOKIE_NAME = "ufvd";
61
67
  declare const UNIFORM_DEFAULT_QUIRK_COOKIE_NAME = "ufvdqk";
@@ -65,7 +71,7 @@ declare const UNIFORM_DEFAULT_QUIRK_COOKIE_NAME = "ufvdqk";
65
71
  */
66
72
  declare class CookieTransitionDataStore extends TransitionDataStore {
67
73
  #private;
68
- constructor({ serverCookieValue, experimental_quirksEnabled, quirkCookieValue, quirkCookieName, cookieName, cookieAttributes, }: CookieTransitionDataStoreOptions);
74
+ constructor({ serverCookieValue, experimental_quirksEnabled, quirkCookieValue, quirkCookieName, cookieName, cookieAttributes, omitZeroScores, }: CookieTransitionDataStoreOptions);
69
75
  handleDelete(): Promise<void>;
70
76
  handleUpdateData(_: StorageCommands[], computedValue: VisitorData): Promise<void>;
71
77
  }
@@ -78,10 +84,10 @@ declare function parseQuirkCookie(quirkCookieValue: string): Quirks;
78
84
  declare function parseCookieScores(type: string | undefined): Record<string, string>;
79
85
  declare function parseCookieType(type: string | undefined): Record<string, string>;
80
86
  declare function decodeCookieType(type: Record<string, string>): Record<string, number>;
81
- declare function serializeCookie(data: VisitorData): string;
87
+ declare function serializeCookie(data: VisitorData, omitZeroScores?: boolean): string;
82
88
  declare function serializePersonalizeVariants({ personalizeVariants, }: Pick<VisitorData, 'personalizeVariants'>): string;
83
89
  declare function decodePersonalizeVariants(data: string | undefined): VisitorData['personalizeVariants'];
84
- declare function encodeCookieType(type: Record<string, number>): Record<string, string>;
90
+ declare function encodeCookieType(type: Record<string, number>, omitZeroScores?: boolean): Record<string, string>;
85
91
  declare function serializeCookieType(type: Record<string, string>): string;
86
92
  declare function serializeQuirks(quirks: Quirks): string;
87
93
 
package/dist/index.d.ts CHANGED
@@ -56,6 +56,12 @@ type CookieTransitionDataStoreOptions = {
56
56
  * local storage is the master copy. Defaults to SameSite=Lax.
57
57
  */
58
58
  cookieAttributes?: Cookies.CookieAttributes;
59
+ /**
60
+ * Whether to omit dimensions with a score of zero from the transition store state.
61
+ * When enabled, dimensions with an explicit score of zero will not be included in the cookie.
62
+ * Defaults to false.
63
+ */
64
+ omitZeroScores?: boolean;
59
65
  };
60
66
  declare const UNIFORM_DEFAULT_COOKIE_NAME = "ufvd";
61
67
  declare const UNIFORM_DEFAULT_QUIRK_COOKIE_NAME = "ufvdqk";
@@ -65,7 +71,7 @@ declare const UNIFORM_DEFAULT_QUIRK_COOKIE_NAME = "ufvdqk";
65
71
  */
66
72
  declare class CookieTransitionDataStore extends TransitionDataStore {
67
73
  #private;
68
- constructor({ serverCookieValue, experimental_quirksEnabled, quirkCookieValue, quirkCookieName, cookieName, cookieAttributes, }: CookieTransitionDataStoreOptions);
74
+ constructor({ serverCookieValue, experimental_quirksEnabled, quirkCookieValue, quirkCookieName, cookieName, cookieAttributes, omitZeroScores, }: CookieTransitionDataStoreOptions);
69
75
  handleDelete(): Promise<void>;
70
76
  handleUpdateData(_: StorageCommands[], computedValue: VisitorData): Promise<void>;
71
77
  }
@@ -78,10 +84,10 @@ declare function parseQuirkCookie(quirkCookieValue: string): Quirks;
78
84
  declare function parseCookieScores(type: string | undefined): Record<string, string>;
79
85
  declare function parseCookieType(type: string | undefined): Record<string, string>;
80
86
  declare function decodeCookieType(type: Record<string, string>): Record<string, number>;
81
- declare function serializeCookie(data: VisitorData): string;
87
+ declare function serializeCookie(data: VisitorData, omitZeroScores?: boolean): string;
82
88
  declare function serializePersonalizeVariants({ personalizeVariants, }: Pick<VisitorData, 'personalizeVariants'>): string;
83
89
  declare function decodePersonalizeVariants(data: string | undefined): VisitorData['personalizeVariants'];
84
- declare function encodeCookieType(type: Record<string, number>): Record<string, string>;
90
+ declare function encodeCookieType(type: Record<string, number>, omitZeroScores?: boolean): Record<string, string>;
85
91
  declare function serializeCookieType(type: Record<string, string>): string;
86
92
  declare function serializeQuirks(quirks: Quirks): string;
87
93
 
package/dist/index.esm.js CHANGED
@@ -1072,7 +1072,7 @@ var bton = (base64) => {
1072
1072
  var ssr = typeof document === "undefined";
1073
1073
  var UNIFORM_DEFAULT_COOKIE_NAME = "ufvd";
1074
1074
  var UNIFORM_DEFAULT_QUIRK_COOKIE_NAME = `ufvdqk`;
1075
- var _cookieName, _quirkCookieName, _cookieAttributes, _quirksEnabled;
1075
+ var _cookieName, _quirkCookieName, _cookieAttributes, _quirksEnabled, _omitZeroScores;
1076
1076
  var CookieTransitionDataStore = class extends TransitionDataStore {
1077
1077
  constructor({
1078
1078
  serverCookieValue,
@@ -1080,7 +1080,8 @@ var CookieTransitionDataStore = class extends TransitionDataStore {
1080
1080
  quirkCookieValue,
1081
1081
  quirkCookieName = UNIFORM_DEFAULT_QUIRK_COOKIE_NAME,
1082
1082
  cookieName = UNIFORM_DEFAULT_COOKIE_NAME,
1083
- cookieAttributes = { sameSite: "lax" }
1083
+ cookieAttributes = { sameSite: "lax" },
1084
+ omitZeroScores = false
1084
1085
  }) {
1085
1086
  super({
1086
1087
  initialData: ssr ? parseScoreCookie(serverCookieValue, experimental_quirksEnabled ? quirkCookieValue : void 0) : void 0
@@ -1089,10 +1090,12 @@ var CookieTransitionDataStore = class extends TransitionDataStore {
1089
1090
  __privateAdd(this, _quirkCookieName);
1090
1091
  __privateAdd(this, _cookieAttributes);
1091
1092
  __privateAdd(this, _quirksEnabled);
1093
+ __privateAdd(this, _omitZeroScores);
1092
1094
  __privateSet(this, _cookieName, cookieName);
1093
1095
  __privateSet(this, _cookieAttributes, cookieAttributes);
1094
1096
  __privateSet(this, _quirkCookieName, quirkCookieName);
1095
1097
  __privateSet(this, _quirksEnabled, experimental_quirksEnabled || false);
1098
+ __privateSet(this, _omitZeroScores, omitZeroScores);
1096
1099
  }
1097
1100
  handleDelete() {
1098
1101
  if (ssr) return Promise.resolve();
@@ -1102,7 +1105,11 @@ var CookieTransitionDataStore = class extends TransitionDataStore {
1102
1105
  async handleUpdateData(_, computedValue) {
1103
1106
  if (ssr) return;
1104
1107
  if (computedValue.consent) {
1105
- Cookies.set(__privateGet(this, _cookieName), serializeCookie(computedValue), __privateGet(this, _cookieAttributes));
1108
+ Cookies.set(
1109
+ __privateGet(this, _cookieName),
1110
+ serializeCookie(computedValue, __privateGet(this, _omitZeroScores)),
1111
+ __privateGet(this, _cookieAttributes)
1112
+ );
1106
1113
  if (__privateGet(this, _quirksEnabled) && Object.keys(computedValue.quirks || {}).length) {
1107
1114
  const quirkCookieValue = serializeQuirks(computedValue.quirks || {});
1108
1115
  Cookies.set(__privateGet(this, _quirkCookieName), quirkCookieValue, __privateGet(this, _cookieAttributes));
@@ -1119,6 +1126,7 @@ _cookieName = new WeakMap();
1119
1126
  _quirkCookieName = new WeakMap();
1120
1127
  _cookieAttributes = new WeakMap();
1121
1128
  _quirksEnabled = new WeakMap();
1129
+ _omitZeroScores = new WeakMap();
1122
1130
  var TYPE_SEP = "~";
1123
1131
  var PAIR_SEP = "!";
1124
1132
  var KV_SEP = "-";
@@ -1190,11 +1198,11 @@ function decodeCookieType(type) {
1190
1198
  return acc;
1191
1199
  }, {});
1192
1200
  }
1193
- function serializeCookie(data) {
1201
+ function serializeCookie(data, omitZeroScores) {
1194
1202
  return [
1195
1203
  serializeCookieType(data.tests),
1196
- serializeCookieType(encodeCookieType(data.sessionScores)),
1197
- serializeCookieType(encodeCookieType(data.scores)),
1204
+ serializeCookieType(encodeCookieType(data.sessionScores, omitZeroScores)),
1205
+ serializeCookieType(encodeCookieType(data.scores, omitZeroScores)),
1198
1206
  data.controlGroup ? "1" : "0",
1199
1207
  serializePersonalizeVariants(data)
1200
1208
  ].join(TYPE_SEP);
@@ -1236,8 +1244,11 @@ function decodePersonalizeVariants(data) {
1236
1244
  });
1237
1245
  return results;
1238
1246
  }
1239
- function encodeCookieType(type) {
1247
+ function encodeCookieType(type, omitZeroScores) {
1240
1248
  return Object.entries(type).reduce((acc, [key, value]) => {
1249
+ if (omitZeroScores && value === 0) {
1250
+ return acc;
1251
+ }
1241
1252
  acc[key] = ntob(value);
1242
1253
  return acc;
1243
1254
  }, {});
package/dist/index.js CHANGED
@@ -1165,7 +1165,7 @@ var bton = (base64) => {
1165
1165
  var ssr = typeof document === "undefined";
1166
1166
  var UNIFORM_DEFAULT_COOKIE_NAME = "ufvd";
1167
1167
  var UNIFORM_DEFAULT_QUIRK_COOKIE_NAME = `ufvdqk`;
1168
- var _cookieName, _quirkCookieName, _cookieAttributes, _quirksEnabled;
1168
+ var _cookieName, _quirkCookieName, _cookieAttributes, _quirksEnabled, _omitZeroScores;
1169
1169
  var CookieTransitionDataStore = class extends TransitionDataStore {
1170
1170
  constructor({
1171
1171
  serverCookieValue,
@@ -1173,7 +1173,8 @@ var CookieTransitionDataStore = class extends TransitionDataStore {
1173
1173
  quirkCookieValue,
1174
1174
  quirkCookieName = UNIFORM_DEFAULT_QUIRK_COOKIE_NAME,
1175
1175
  cookieName = UNIFORM_DEFAULT_COOKIE_NAME,
1176
- cookieAttributes = { sameSite: "lax" }
1176
+ cookieAttributes = { sameSite: "lax" },
1177
+ omitZeroScores = false
1177
1178
  }) {
1178
1179
  super({
1179
1180
  initialData: ssr ? parseScoreCookie(serverCookieValue, experimental_quirksEnabled ? quirkCookieValue : void 0) : void 0
@@ -1182,10 +1183,12 @@ var CookieTransitionDataStore = class extends TransitionDataStore {
1182
1183
  __privateAdd(this, _quirkCookieName);
1183
1184
  __privateAdd(this, _cookieAttributes);
1184
1185
  __privateAdd(this, _quirksEnabled);
1186
+ __privateAdd(this, _omitZeroScores);
1185
1187
  __privateSet(this, _cookieName, cookieName);
1186
1188
  __privateSet(this, _cookieAttributes, cookieAttributes);
1187
1189
  __privateSet(this, _quirkCookieName, quirkCookieName);
1188
1190
  __privateSet(this, _quirksEnabled, experimental_quirksEnabled || false);
1191
+ __privateSet(this, _omitZeroScores, omitZeroScores);
1189
1192
  }
1190
1193
  handleDelete() {
1191
1194
  if (ssr) return Promise.resolve();
@@ -1195,7 +1198,11 @@ var CookieTransitionDataStore = class extends TransitionDataStore {
1195
1198
  async handleUpdateData(_, computedValue) {
1196
1199
  if (ssr) return;
1197
1200
  if (computedValue.consent) {
1198
- import_js_cookie.default.set(__privateGet(this, _cookieName), serializeCookie(computedValue), __privateGet(this, _cookieAttributes));
1201
+ import_js_cookie.default.set(
1202
+ __privateGet(this, _cookieName),
1203
+ serializeCookie(computedValue, __privateGet(this, _omitZeroScores)),
1204
+ __privateGet(this, _cookieAttributes)
1205
+ );
1199
1206
  if (__privateGet(this, _quirksEnabled) && Object.keys(computedValue.quirks || {}).length) {
1200
1207
  const quirkCookieValue = serializeQuirks(computedValue.quirks || {});
1201
1208
  import_js_cookie.default.set(__privateGet(this, _quirkCookieName), quirkCookieValue, __privateGet(this, _cookieAttributes));
@@ -1212,6 +1219,7 @@ _cookieName = new WeakMap();
1212
1219
  _quirkCookieName = new WeakMap();
1213
1220
  _cookieAttributes = new WeakMap();
1214
1221
  _quirksEnabled = new WeakMap();
1222
+ _omitZeroScores = new WeakMap();
1215
1223
  var TYPE_SEP = "~";
1216
1224
  var PAIR_SEP = "!";
1217
1225
  var KV_SEP = "-";
@@ -1283,11 +1291,11 @@ function decodeCookieType(type) {
1283
1291
  return acc;
1284
1292
  }, {});
1285
1293
  }
1286
- function serializeCookie(data) {
1294
+ function serializeCookie(data, omitZeroScores) {
1287
1295
  return [
1288
1296
  serializeCookieType(data.tests),
1289
- serializeCookieType(encodeCookieType(data.sessionScores)),
1290
- serializeCookieType(encodeCookieType(data.scores)),
1297
+ serializeCookieType(encodeCookieType(data.sessionScores, omitZeroScores)),
1298
+ serializeCookieType(encodeCookieType(data.scores, omitZeroScores)),
1291
1299
  data.controlGroup ? "1" : "0",
1292
1300
  serializePersonalizeVariants(data)
1293
1301
  ].join(TYPE_SEP);
@@ -1329,8 +1337,11 @@ function decodePersonalizeVariants(data) {
1329
1337
  });
1330
1338
  return results;
1331
1339
  }
1332
- function encodeCookieType(type) {
1340
+ function encodeCookieType(type, omitZeroScores) {
1333
1341
  return Object.entries(type).reduce((acc, [key, value]) => {
1342
+ if (omitZeroScores && value === 0) {
1343
+ return acc;
1344
+ }
1334
1345
  acc[key] = ntob(value);
1335
1346
  return acc;
1336
1347
  }, {});
package/dist/index.mjs CHANGED
@@ -1072,7 +1072,7 @@ var bton = (base64) => {
1072
1072
  var ssr = typeof document === "undefined";
1073
1073
  var UNIFORM_DEFAULT_COOKIE_NAME = "ufvd";
1074
1074
  var UNIFORM_DEFAULT_QUIRK_COOKIE_NAME = `ufvdqk`;
1075
- var _cookieName, _quirkCookieName, _cookieAttributes, _quirksEnabled;
1075
+ var _cookieName, _quirkCookieName, _cookieAttributes, _quirksEnabled, _omitZeroScores;
1076
1076
  var CookieTransitionDataStore = class extends TransitionDataStore {
1077
1077
  constructor({
1078
1078
  serverCookieValue,
@@ -1080,7 +1080,8 @@ var CookieTransitionDataStore = class extends TransitionDataStore {
1080
1080
  quirkCookieValue,
1081
1081
  quirkCookieName = UNIFORM_DEFAULT_QUIRK_COOKIE_NAME,
1082
1082
  cookieName = UNIFORM_DEFAULT_COOKIE_NAME,
1083
- cookieAttributes = { sameSite: "lax" }
1083
+ cookieAttributes = { sameSite: "lax" },
1084
+ omitZeroScores = false
1084
1085
  }) {
1085
1086
  super({
1086
1087
  initialData: ssr ? parseScoreCookie(serverCookieValue, experimental_quirksEnabled ? quirkCookieValue : void 0) : void 0
@@ -1089,10 +1090,12 @@ var CookieTransitionDataStore = class extends TransitionDataStore {
1089
1090
  __privateAdd(this, _quirkCookieName);
1090
1091
  __privateAdd(this, _cookieAttributes);
1091
1092
  __privateAdd(this, _quirksEnabled);
1093
+ __privateAdd(this, _omitZeroScores);
1092
1094
  __privateSet(this, _cookieName, cookieName);
1093
1095
  __privateSet(this, _cookieAttributes, cookieAttributes);
1094
1096
  __privateSet(this, _quirkCookieName, quirkCookieName);
1095
1097
  __privateSet(this, _quirksEnabled, experimental_quirksEnabled || false);
1098
+ __privateSet(this, _omitZeroScores, omitZeroScores);
1096
1099
  }
1097
1100
  handleDelete() {
1098
1101
  if (ssr) return Promise.resolve();
@@ -1102,7 +1105,11 @@ var CookieTransitionDataStore = class extends TransitionDataStore {
1102
1105
  async handleUpdateData(_, computedValue) {
1103
1106
  if (ssr) return;
1104
1107
  if (computedValue.consent) {
1105
- Cookies.set(__privateGet(this, _cookieName), serializeCookie(computedValue), __privateGet(this, _cookieAttributes));
1108
+ Cookies.set(
1109
+ __privateGet(this, _cookieName),
1110
+ serializeCookie(computedValue, __privateGet(this, _omitZeroScores)),
1111
+ __privateGet(this, _cookieAttributes)
1112
+ );
1106
1113
  if (__privateGet(this, _quirksEnabled) && Object.keys(computedValue.quirks || {}).length) {
1107
1114
  const quirkCookieValue = serializeQuirks(computedValue.quirks || {});
1108
1115
  Cookies.set(__privateGet(this, _quirkCookieName), quirkCookieValue, __privateGet(this, _cookieAttributes));
@@ -1119,6 +1126,7 @@ _cookieName = new WeakMap();
1119
1126
  _quirkCookieName = new WeakMap();
1120
1127
  _cookieAttributes = new WeakMap();
1121
1128
  _quirksEnabled = new WeakMap();
1129
+ _omitZeroScores = new WeakMap();
1122
1130
  var TYPE_SEP = "~";
1123
1131
  var PAIR_SEP = "!";
1124
1132
  var KV_SEP = "-";
@@ -1190,11 +1198,11 @@ function decodeCookieType(type) {
1190
1198
  return acc;
1191
1199
  }, {});
1192
1200
  }
1193
- function serializeCookie(data) {
1201
+ function serializeCookie(data, omitZeroScores) {
1194
1202
  return [
1195
1203
  serializeCookieType(data.tests),
1196
- serializeCookieType(encodeCookieType(data.sessionScores)),
1197
- serializeCookieType(encodeCookieType(data.scores)),
1204
+ serializeCookieType(encodeCookieType(data.sessionScores, omitZeroScores)),
1205
+ serializeCookieType(encodeCookieType(data.scores, omitZeroScores)),
1198
1206
  data.controlGroup ? "1" : "0",
1199
1207
  serializePersonalizeVariants(data)
1200
1208
  ].join(TYPE_SEP);
@@ -1236,8 +1244,11 @@ function decodePersonalizeVariants(data) {
1236
1244
  });
1237
1245
  return results;
1238
1246
  }
1239
- function encodeCookieType(type) {
1247
+ function encodeCookieType(type, omitZeroScores) {
1240
1248
  return Object.entries(type).reduce((acc, [key, value]) => {
1249
+ if (omitZeroScores && value === 0) {
1250
+ return acc;
1251
+ }
1241
1252
  acc[key] = ntob(value);
1242
1253
  return acc;
1243
1254
  }, {});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/context",
3
- "version": "20.20.3",
3
+ "version": "20.22.1-alpha.0+b02aa0b2f0",
4
4
  "description": "Uniform Context core package",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "./dist/index.js",
@@ -68,5 +68,5 @@
68
68
  "publishConfig": {
69
69
  "access": "public"
70
70
  },
71
- "gitHead": "3e58ece2c26439f3ee48d2ff445898a3be59b349"
71
+ "gitHead": "b02aa0b2f0c3d94ec1f20953cb5bc36dfa9cdbc7"
72
72
  }