@uniformdev/canvas-next-rsc-client 19.135.0 → 19.135.1-alpha.11

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.js CHANGED
@@ -31,9 +31,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
31
31
  ));
32
32
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
33
 
34
- // ../../node_modules/.pnpm/rfdc@1.3.1/node_modules/rfdc/index.js
34
+ // ../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js
35
35
  var require_rfdc = __commonJS({
36
- "../../node_modules/.pnpm/rfdc@1.3.1/node_modules/rfdc/index.js"(exports2, module2) {
36
+ "../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js"(exports2, module2) {
37
37
  "use strict";
38
38
  module2.exports = rfdc4;
39
39
  function copyBuffer(cur) {
@@ -44,19 +44,28 @@ var require_rfdc = __commonJS({
44
44
  }
45
45
  function rfdc4(opts) {
46
46
  opts = opts || {};
47
- if (opts.circles)
48
- return rfdcCircles(opts);
47
+ if (opts.circles) return rfdcCircles(opts);
48
+ const constructorHandlers = /* @__PURE__ */ new Map();
49
+ constructorHandlers.set(Date, (o) => new Date(o));
50
+ constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)));
51
+ constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)));
52
+ if (opts.constructorHandlers) {
53
+ for (const handler2 of opts.constructorHandlers) {
54
+ constructorHandlers.set(handler2[0], handler2[1]);
55
+ }
56
+ }
57
+ let handler = null;
49
58
  return opts.proto ? cloneProto : clone2;
50
59
  function cloneArray(a, fn) {
51
- var keys = Object.keys(a);
52
- var a2 = new Array(keys.length);
53
- for (var i = 0; i < keys.length; i++) {
54
- var k = keys[i];
55
- var cur = a[k];
60
+ const keys = Object.keys(a);
61
+ const a2 = new Array(keys.length);
62
+ for (let i = 0; i < keys.length; i++) {
63
+ const k = keys[i];
64
+ const cur = a[k];
56
65
  if (typeof cur !== "object" || cur === null) {
57
66
  a2[k] = cur;
58
- } else if (cur instanceof Date) {
59
- a2[k] = new Date(cur);
67
+ } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
68
+ a2[k] = handler(cur, fn);
60
69
  } else if (ArrayBuffer.isView(cur)) {
61
70
  a2[k] = copyBuffer(cur);
62
71
  } else {
@@ -66,29 +75,19 @@ var require_rfdc = __commonJS({
66
75
  return a2;
67
76
  }
68
77
  function clone2(o) {
69
- if (typeof o !== "object" || o === null)
70
- return o;
71
- if (o instanceof Date)
72
- return new Date(o);
73
- if (Array.isArray(o))
74
- return cloneArray(o, clone2);
75
- if (o instanceof Map)
76
- return new Map(cloneArray(Array.from(o), clone2));
77
- if (o instanceof Set)
78
- return new Set(cloneArray(Array.from(o), clone2));
79
- var o2 = {};
80
- for (var k in o) {
81
- if (Object.hasOwnProperty.call(o, k) === false)
82
- continue;
83
- var cur = o[k];
78
+ if (typeof o !== "object" || o === null) return o;
79
+ if (Array.isArray(o)) return cloneArray(o, clone2);
80
+ if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {
81
+ return handler(o, clone2);
82
+ }
83
+ const o2 = {};
84
+ for (const k in o) {
85
+ if (Object.hasOwnProperty.call(o, k) === false) continue;
86
+ const cur = o[k];
84
87
  if (typeof cur !== "object" || cur === null) {
85
88
  o2[k] = cur;
86
- } else if (cur instanceof Date) {
87
- o2[k] = new Date(cur);
88
- } else if (cur instanceof Map) {
89
- o2[k] = new Map(cloneArray(Array.from(cur), clone2));
90
- } else if (cur instanceof Set) {
91
- o2[k] = new Set(cloneArray(Array.from(cur), clone2));
89
+ } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
90
+ o2[k] = handler(cur, clone2);
92
91
  } else if (ArrayBuffer.isView(cur)) {
93
92
  o2[k] = copyBuffer(cur);
94
93
  } else {
@@ -98,27 +97,18 @@ var require_rfdc = __commonJS({
98
97
  return o2;
99
98
  }
100
99
  function cloneProto(o) {
101
- if (typeof o !== "object" || o === null)
102
- return o;
103
- if (o instanceof Date)
104
- return new Date(o);
105
- if (Array.isArray(o))
106
- return cloneArray(o, cloneProto);
107
- if (o instanceof Map)
108
- return new Map(cloneArray(Array.from(o), cloneProto));
109
- if (o instanceof Set)
110
- return new Set(cloneArray(Array.from(o), cloneProto));
111
- var o2 = {};
112
- for (var k in o) {
113
- var cur = o[k];
100
+ if (typeof o !== "object" || o === null) return o;
101
+ if (Array.isArray(o)) return cloneArray(o, cloneProto);
102
+ if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {
103
+ return handler(o, cloneProto);
104
+ }
105
+ const o2 = {};
106
+ for (const k in o) {
107
+ const cur = o[k];
114
108
  if (typeof cur !== "object" || cur === null) {
115
109
  o2[k] = cur;
116
- } else if (cur instanceof Date) {
117
- o2[k] = new Date(cur);
118
- } else if (cur instanceof Map) {
119
- o2[k] = new Map(cloneArray(Array.from(cur), cloneProto));
120
- } else if (cur instanceof Set) {
121
- o2[k] = new Set(cloneArray(Array.from(cur), cloneProto));
110
+ } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
111
+ o2[k] = handler(cur, cloneProto);
122
112
  } else if (ArrayBuffer.isView(cur)) {
123
113
  o2[k] = copyBuffer(cur);
124
114
  } else {
@@ -129,23 +119,33 @@ var require_rfdc = __commonJS({
129
119
  }
130
120
  }
131
121
  function rfdcCircles(opts) {
132
- var refs = [];
133
- var refsNew = [];
122
+ const refs = [];
123
+ const refsNew = [];
124
+ const constructorHandlers = /* @__PURE__ */ new Map();
125
+ constructorHandlers.set(Date, (o) => new Date(o));
126
+ constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)));
127
+ constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)));
128
+ if (opts.constructorHandlers) {
129
+ for (const handler2 of opts.constructorHandlers) {
130
+ constructorHandlers.set(handler2[0], handler2[1]);
131
+ }
132
+ }
133
+ let handler = null;
134
134
  return opts.proto ? cloneProto : clone2;
135
135
  function cloneArray(a, fn) {
136
- var keys = Object.keys(a);
137
- var a2 = new Array(keys.length);
138
- for (var i = 0; i < keys.length; i++) {
139
- var k = keys[i];
140
- var cur = a[k];
136
+ const keys = Object.keys(a);
137
+ const a2 = new Array(keys.length);
138
+ for (let i = 0; i < keys.length; i++) {
139
+ const k = keys[i];
140
+ const cur = a[k];
141
141
  if (typeof cur !== "object" || cur === null) {
142
142
  a2[k] = cur;
143
- } else if (cur instanceof Date) {
144
- a2[k] = new Date(cur);
143
+ } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
144
+ a2[k] = handler(cur, fn);
145
145
  } else if (ArrayBuffer.isView(cur)) {
146
146
  a2[k] = copyBuffer(cur);
147
147
  } else {
148
- var index = refs.indexOf(cur);
148
+ const index = refs.indexOf(cur);
149
149
  if (index !== -1) {
150
150
  a2[k] = refsNew[index];
151
151
  } else {
@@ -156,35 +156,25 @@ var require_rfdc = __commonJS({
156
156
  return a2;
157
157
  }
158
158
  function clone2(o) {
159
- if (typeof o !== "object" || o === null)
160
- return o;
161
- if (o instanceof Date)
162
- return new Date(o);
163
- if (Array.isArray(o))
164
- return cloneArray(o, clone2);
165
- if (o instanceof Map)
166
- return new Map(cloneArray(Array.from(o), clone2));
167
- if (o instanceof Set)
168
- return new Set(cloneArray(Array.from(o), clone2));
169
- var o2 = {};
159
+ if (typeof o !== "object" || o === null) return o;
160
+ if (Array.isArray(o)) return cloneArray(o, clone2);
161
+ if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {
162
+ return handler(o, clone2);
163
+ }
164
+ const o2 = {};
170
165
  refs.push(o);
171
166
  refsNew.push(o2);
172
- for (var k in o) {
173
- if (Object.hasOwnProperty.call(o, k) === false)
174
- continue;
175
- var cur = o[k];
167
+ for (const k in o) {
168
+ if (Object.hasOwnProperty.call(o, k) === false) continue;
169
+ const cur = o[k];
176
170
  if (typeof cur !== "object" || cur === null) {
177
171
  o2[k] = cur;
178
- } else if (cur instanceof Date) {
179
- o2[k] = new Date(cur);
180
- } else if (cur instanceof Map) {
181
- o2[k] = new Map(cloneArray(Array.from(cur), clone2));
182
- } else if (cur instanceof Set) {
183
- o2[k] = new Set(cloneArray(Array.from(cur), clone2));
172
+ } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
173
+ o2[k] = handler(cur, clone2);
184
174
  } else if (ArrayBuffer.isView(cur)) {
185
175
  o2[k] = copyBuffer(cur);
186
176
  } else {
187
- var i = refs.indexOf(cur);
177
+ const i = refs.indexOf(cur);
188
178
  if (i !== -1) {
189
179
  o2[k] = refsNew[i];
190
180
  } else {
@@ -197,33 +187,24 @@ var require_rfdc = __commonJS({
197
187
  return o2;
198
188
  }
199
189
  function cloneProto(o) {
200
- if (typeof o !== "object" || o === null)
201
- return o;
202
- if (o instanceof Date)
203
- return new Date(o);
204
- if (Array.isArray(o))
205
- return cloneArray(o, cloneProto);
206
- if (o instanceof Map)
207
- return new Map(cloneArray(Array.from(o), cloneProto));
208
- if (o instanceof Set)
209
- return new Set(cloneArray(Array.from(o), cloneProto));
210
- var o2 = {};
190
+ if (typeof o !== "object" || o === null) return o;
191
+ if (Array.isArray(o)) return cloneArray(o, cloneProto);
192
+ if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {
193
+ return handler(o, cloneProto);
194
+ }
195
+ const o2 = {};
211
196
  refs.push(o);
212
197
  refsNew.push(o2);
213
- for (var k in o) {
214
- var cur = o[k];
198
+ for (const k in o) {
199
+ const cur = o[k];
215
200
  if (typeof cur !== "object" || cur === null) {
216
201
  o2[k] = cur;
217
- } else if (cur instanceof Date) {
218
- o2[k] = new Date(cur);
219
- } else if (cur instanceof Map) {
220
- o2[k] = new Map(cloneArray(Array.from(cur), cloneProto));
221
- } else if (cur instanceof Set) {
222
- o2[k] = new Set(cloneArray(Array.from(cur), cloneProto));
202
+ } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {
203
+ o2[k] = handler(cur, cloneProto);
223
204
  } else if (ArrayBuffer.isView(cur)) {
224
205
  o2[k] = copyBuffer(cur);
225
206
  } else {
226
- var i = refs.indexOf(cur);
207
+ const i = refs.indexOf(cur);
227
208
  if (i !== -1) {
228
209
  o2[k] = refsNew[i];
229
210
  } else {
@@ -251,8 +232,11 @@ __export(src_exports, {
251
232
  PersonalizeClient: () => PersonalizeClient,
252
233
  TestClient: () => TestClient,
253
234
  UniformScript: () => UniformScript,
235
+ VisibilityRulesWrapperClient: () => VisibilityRulesWrapperClient,
254
236
  createClientUniformContext: () => createClientUniformContext,
255
237
  useInitUniformContext: () => useInitUniformContext,
238
+ useQuirks: () => useQuirks,
239
+ useScores: () => useScores,
256
240
  useUniformContext: () => useUniformContext
257
241
  });
258
242
  module.exports = __toCommonJS(src_exports);
@@ -383,27 +367,21 @@ var ContextUpdateTransferClient = ({
383
367
  var has = Object.prototype.hasOwnProperty;
384
368
  function dequal(foo, bar) {
385
369
  var ctor, len;
386
- if (foo === bar)
387
- return true;
370
+ if (foo === bar) return true;
388
371
  if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
389
- if (ctor === Date)
390
- return foo.getTime() === bar.getTime();
391
- if (ctor === RegExp)
392
- return foo.toString() === bar.toString();
372
+ if (ctor === Date) return foo.getTime() === bar.getTime();
373
+ if (ctor === RegExp) return foo.toString() === bar.toString();
393
374
  if (ctor === Array) {
394
375
  if ((len = foo.length) === bar.length) {
395
- while (len-- && dequal(foo[len], bar[len]))
396
- ;
376
+ while (len-- && dequal(foo[len], bar[len])) ;
397
377
  }
398
378
  return len === -1;
399
379
  }
400
380
  if (!ctor || typeof foo === "object") {
401
381
  len = 0;
402
382
  for (ctor in foo) {
403
- if (has.call(foo, ctor) && ++len && !has.call(bar, ctor))
404
- return false;
405
- if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor]))
406
- return false;
383
+ if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
384
+ if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
407
385
  }
408
386
  return Object.keys(bar).length === len;
409
387
  }
@@ -513,33 +491,27 @@ var api = init(defaultConverter, { path: "/" });
513
491
  var import_rfdc = __toESM(require_rfdc(), 1);
514
492
  var import_rfdc2 = __toESM(require_rfdc(), 1);
515
493
  var import_rfdc3 = __toESM(require_rfdc(), 1);
516
- var __accessCheck = (obj, member, msg) => {
517
- if (!member.has(obj))
518
- throw TypeError("Cannot " + msg);
519
- };
520
- var __privateGet = (obj, member, getter) => {
521
- __accessCheck(obj, member, "read from private field");
522
- return getter ? getter.call(obj) : member.get(obj);
523
- };
524
- var __privateSet = (obj, member, value, setter) => {
525
- __accessCheck(obj, member, "write to private field");
526
- setter ? setter.call(obj, value) : member.set(obj, value);
527
- return value;
528
- };
529
- var __privateMethod = (obj, member, method) => {
530
- __accessCheck(obj, member, "access private method");
531
- return method;
494
+ var __typeError = (msg) => {
495
+ throw TypeError(msg);
532
496
  };
497
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
498
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
499
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
500
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
533
501
  var ENR_SEPARATOR = "_";
502
+ var _id;
503
+ _id = /* @__PURE__ */ new WeakMap();
534
504
  var _evaluator;
535
505
  var _onLogMessage;
536
506
  _evaluator = /* @__PURE__ */ new WeakMap();
537
507
  _onLogMessage = /* @__PURE__ */ new WeakMap();
538
508
  var _mf;
539
509
  var _signalInstances;
510
+ var _goalEvaluators;
540
511
  var _onLogMessage2;
541
512
  _mf = /* @__PURE__ */ new WeakMap();
542
513
  _signalInstances = /* @__PURE__ */ new WeakMap();
514
+ _goalEvaluators = /* @__PURE__ */ new WeakMap();
543
515
  _onLogMessage2 = /* @__PURE__ */ new WeakMap();
544
516
  function getEnrichmentVectorKey(category, value) {
545
517
  return `${category}${ENR_SEPARATOR}${value}`;
@@ -626,9 +598,9 @@ var _cookieName;
626
598
  var _cookieAttributes;
627
599
  _cookieName = /* @__PURE__ */ new WeakMap();
628
600
  _cookieAttributes = /* @__PURE__ */ new WeakMap();
629
- var _fetchData;
601
+ var _EdgeTransitionDataStore_instances;
630
602
  var fetchData_fn;
631
- _fetchData = /* @__PURE__ */ new WeakSet();
603
+ _EdgeTransitionDataStore_instances = /* @__PURE__ */ new WeakSet();
632
604
  fetchData_fn = async function() {
633
605
  const serviceData = await new Promise((resolve) => {
634
606
  setTimeout(() => {
@@ -644,64 +616,61 @@ var emptyVisitorData = () => ({
644
616
  scores: {},
645
617
  sessionScores: {},
646
618
  tests: {},
619
+ goals: {},
647
620
  consent: false,
648
621
  controlGroup: false,
649
622
  personalizeVariants: {}
650
623
  });
651
624
  var clone = (0, import_rfdc.default)();
625
+ var _LocalStorage_instances;
626
+ var key_fn;
627
+ _LocalStorage_instances = /* @__PURE__ */ new WeakSet();
628
+ key_fn = function(key) {
629
+ return this.partitionKey ? `${this.partitionKey}.${key}` : key;
630
+ };
652
631
  var STORAGE_KEY = "ufvisitor";
653
632
  var _mitt2;
654
633
  var _persist;
655
634
  var _visitTimeout;
656
635
  var _options;
657
- var _currentData;
636
+ var _VisitorDataStore_instances;
658
637
  var currentData_get;
659
- var _replaceData;
660
638
  var replaceData_fn;
661
- var _setVisitTimeout;
662
639
  var setVisitTimeout_fn;
663
- var _isExpired;
664
640
  var isExpired_fn;
665
- var _handleCaps;
666
641
  var handleCaps_fn;
667
- var _defaultData;
668
642
  var defaultData_fn;
669
643
  _mitt2 = /* @__PURE__ */ new WeakMap();
670
644
  _persist = /* @__PURE__ */ new WeakMap();
671
645
  _visitTimeout = /* @__PURE__ */ new WeakMap();
672
646
  _options = /* @__PURE__ */ new WeakMap();
673
- _currentData = /* @__PURE__ */ new WeakSet();
647
+ _VisitorDataStore_instances = /* @__PURE__ */ new WeakSet();
674
648
  currentData_get = function() {
675
649
  return __privateGet(this, _persist).get(STORAGE_KEY);
676
650
  };
677
- _replaceData = /* @__PURE__ */ new WeakSet();
678
651
  replaceData_fn = function(data, quiet = false) {
679
- var _a, _b, _c, _d, _e, _f, _g, _h, _i;
680
- const oldData = __privateGet(this, _currentData, currentData_get);
652
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
653
+ const oldData = __privateGet(this, _VisitorDataStore_instances, currentData_get);
681
654
  const now = Date.now();
682
- if (data.controlGroup) {
683
- data.scores = {};
684
- data.sessionScores = {};
685
- } else {
686
- __privateMethod(this, _handleCaps, handleCaps_fn).call(this, data.scores);
687
- __privateMethod(this, _handleCaps, handleCaps_fn).call(this, data.sessionScores);
688
- (_b = (_a = __privateGet(this, _options)).decay) == null ? void 0 : _b.call(_a, {
689
- now,
690
- lastUpd: oldData == null ? void 0 : oldData.updated,
691
- scores: data.scores,
692
- sessionScores: data.sessionScores,
693
- onLogMessage: __privateGet(this, _options).onLogMessage
694
- });
695
- }
655
+ __privateMethod(this, _VisitorDataStore_instances, handleCaps_fn).call(this, data.scores);
656
+ __privateMethod(this, _VisitorDataStore_instances, handleCaps_fn).call(this, data.sessionScores);
657
+ (_b = (_a = __privateGet(this, _options)).decay) == null ? void 0 : _b.call(_a, {
658
+ now,
659
+ lastUpd: oldData == null ? void 0 : oldData.updated,
660
+ scores: data.scores,
661
+ sessionScores: data.sessionScores,
662
+ onLogMessage: __privateGet(this, _options).onLogMessage
663
+ });
696
664
  const haveScoresChanged = !dequal(oldData == null ? void 0 : oldData.visitorData.scores, data.scores);
697
665
  const haveSessionScoresChanged = !dequal(oldData == null ? void 0 : oldData.visitorData.sessionScores, data.sessionScores);
698
666
  const haveQuirksChanged = !dequal(oldData == null ? void 0 : oldData.visitorData.quirks, data.quirks);
699
667
  const haveTestsChanged = !dequal(oldData == null ? void 0 : oldData.visitorData.tests, data.tests);
668
+ const haveGoalsChanged = !dequal(oldData == null ? void 0 : oldData.visitorData.goals, data.goals);
700
669
  const updatedData = {
701
670
  updated: now,
702
671
  visitorData: data
703
672
  };
704
- __privateMethod(this, _setVisitTimeout, setVisitTimeout_fn).call(this);
673
+ __privateMethod(this, _VisitorDataStore_instances, setVisitTimeout_fn).call(this);
705
674
  __privateGet(this, _persist).set(STORAGE_KEY, updatedData, !!data.consent);
706
675
  (_d = (_c = __privateGet(this, _options)).onLogMessage) == null ? void 0 : _d.call(_c, ["debug", 102, data]);
707
676
  if (!quiet) {
@@ -721,9 +690,17 @@ replaceData_fn = function(data, quiet = false) {
721
690
  __privateGet(this, _mitt2).emit("controlGroupUpdated", data);
722
691
  (_i = (_h = __privateGet(this, _options)).onLogMessage) == null ? void 0 : _i.call(_h, ["debug", 104, (_g = data.controlGroup) != null ? _g : false]);
723
692
  }
693
+ if (haveGoalsChanged) {
694
+ const newGoalKeys = Object.keys((_j = data.goals) != null ? _j : {});
695
+ for (let i = 0; i < newGoalKeys.length; i++) {
696
+ const key = newGoalKeys[i];
697
+ if (!((_k = oldData == null ? void 0 : oldData.visitorData.goals) == null ? void 0 : _k[key])) {
698
+ __privateGet(this, _mitt2).emit("goalConverted", { goalId: key });
699
+ }
700
+ }
701
+ }
724
702
  }
725
703
  };
726
- _setVisitTimeout = /* @__PURE__ */ new WeakSet();
727
704
  setVisitTimeout_fn = function() {
728
705
  if (typeof document === "undefined" || !__privateGet(this, _options).visitLifespan) {
729
706
  return;
@@ -735,12 +712,10 @@ setVisitTimeout_fn = function() {
735
712
  this.data;
736
713
  }, __privateGet(this, _options).visitLifespan + 50));
737
714
  };
738
- _isExpired = /* @__PURE__ */ new WeakSet();
739
715
  isExpired_fn = function(data) {
740
716
  const expires = __privateGet(this, _options).visitLifespan;
741
717
  return expires ? data.updated + expires < Date.now() : false;
742
718
  };
743
- _handleCaps = /* @__PURE__ */ new WeakSet();
744
719
  handleCaps_fn = function(scores) {
745
720
  var _a, _b;
746
721
  if (!__privateGet(this, _options).manifest) {
@@ -758,7 +733,6 @@ handleCaps_fn = function(scores) {
758
733
  }
759
734
  }
760
735
  };
761
- _defaultData = /* @__PURE__ */ new WeakSet();
762
736
  defaultData_fn = function() {
763
737
  var _a, _b, _c;
764
738
  return {
@@ -771,33 +745,44 @@ var _serverTransitionState;
771
745
  var _scores;
772
746
  var _state;
773
747
  var _pzCache;
748
+ var _plugins;
749
+ var _commands;
774
750
  var _mitt3;
775
- var _emitTest;
751
+ var _Context_instances;
776
752
  var emitTest_fn;
777
- var _updateComputedScores;
753
+ var updateGoals_fn;
778
754
  var updateComputedScores_fn;
779
- var _calculateScores;
780
755
  var calculateScores_fn;
781
756
  _serverTransitionState = /* @__PURE__ */ new WeakMap();
782
757
  _scores = /* @__PURE__ */ new WeakMap();
783
758
  _state = /* @__PURE__ */ new WeakMap();
784
759
  _pzCache = /* @__PURE__ */ new WeakMap();
760
+ _plugins = /* @__PURE__ */ new WeakMap();
761
+ _commands = /* @__PURE__ */ new WeakMap();
785
762
  _mitt3 = /* @__PURE__ */ new WeakMap();
786
- _emitTest = /* @__PURE__ */ new WeakSet();
763
+ _Context_instances = /* @__PURE__ */ new WeakSet();
787
764
  emitTest_fn = function(event) {
788
765
  __privateGet(this, _mitt3).emit("testResult", event);
789
766
  };
790
- _updateComputedScores = /* @__PURE__ */ new WeakSet();
767
+ updateGoals_fn = async function(data) {
768
+ const goalCommands = this.manifest.computeGoals(data);
769
+ if (goalCommands.length !== 0) {
770
+ await this.storage.updateData(goalCommands);
771
+ }
772
+ };
791
773
  updateComputedScores_fn = function(newData) {
792
- const newScores = __privateMethod(this, _calculateScores, calculateScores_fn).call(this, newData);
774
+ const newScores = __privateMethod(this, _Context_instances, calculateScores_fn).call(this, newData);
793
775
  const newScoresHaveChanged = !dequal(newScores, __privateGet(this, _scores));
794
776
  if (newScoresHaveChanged) {
795
777
  __privateSet(this, _scores, newScores);
778
+ __privateMethod(this, _Context_instances, updateGoals_fn).call(this, {
779
+ scores: __privateGet(this, _scores),
780
+ quirks: void 0
781
+ });
796
782
  __privateGet(this, _mitt3).emit("scoresUpdated", newScores);
797
783
  __privateGet(this, _mitt3).emit("log", ["info", 3, newScores]);
798
784
  }
799
785
  };
800
- _calculateScores = /* @__PURE__ */ new WeakSet();
801
786
  calculateScores_fn = function(newData) {
802
787
  var _a;
803
788
  let newScores = { ...newData.scores };
@@ -844,13 +829,11 @@ function enableContextDevTools(options) {
844
829
  );
845
830
  };
846
831
  const onPersonalizationResult = (e) => {
847
- if (!e.changed)
848
- return;
832
+ if (!e.changed) return;
849
833
  personalizations.push(e);
850
834
  };
851
835
  const onTestResult = (e) => {
852
- if (!e.variantAssigned)
853
- return;
836
+ if (!e.variantAssigned) return;
854
837
  tests.push(e);
855
838
  };
856
839
  if (isBrowser) {
@@ -1002,13 +985,12 @@ var TestClient = (props) => {
1002
985
  var _a;
1003
986
  const { slots } = props;
1004
987
  const { context } = useUniformContext();
1005
- const [index, setIndex] = (0, import_react9.useState)(0);
1006
- (0, import_react9.useEffect)(() => {
988
+ const index = (0, import_react9.useMemo)(() => {
1007
989
  const result = (0, import_canvas_next_rsc_shared3.runTest)({
1008
990
  ...props,
1009
991
  contextInstance: context
1010
992
  });
1011
- setIndex(result.index);
993
+ return result.index;
1012
994
  }, [props, context]);
1013
995
  if (typeof index !== "number") {
1014
996
  return null;
@@ -1062,6 +1044,10 @@ var UniformScript = () => {
1062
1044
  if (enabled) {
1063
1045
  if (!existing) {
1064
1046
  const textHost = (0, import_canvas4.isAllowedReferrer)(window.document.referrer) ? window.document.referrer : "https://uniform.app/";
1047
+ window.__UNIFORM_CONTEXTUAL_EDITING__ = {
1048
+ framework: "React",
1049
+ version: 2
1050
+ };
1065
1051
  const bundleHost = new URL(textHost);
1066
1052
  bundleHost.pathname = "/files/canvas-in-context-embed/index.js";
1067
1053
  const script = document.createElement("script");
@@ -1089,6 +1075,84 @@ var UniformScript = () => {
1089
1075
  }, [router]);
1090
1076
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {});
1091
1077
  };
1078
+
1079
+ // src/components/VisibilityRulesWrapperClient.tsx
1080
+ var import_canvas5 = require("@uniformdev/canvas");
1081
+ var import_react12 = require("react");
1082
+
1083
+ // src/hooks/useQuirks.ts
1084
+ var import_react11 = require("react");
1085
+ function useQuirks() {
1086
+ var _a;
1087
+ const { context } = useUniformContext();
1088
+ const [quirks, setQuirks] = (0, import_react11.useState)((_a = context == null ? void 0 : context.quirks) != null ? _a : {});
1089
+ (0, import_react11.useEffect)(() => {
1090
+ if (!context) {
1091
+ return;
1092
+ }
1093
+ const quirkChangeListener = (updatedQuirks) => {
1094
+ setQuirks(updatedQuirks);
1095
+ };
1096
+ setQuirks(context.quirks);
1097
+ context == null ? void 0 : context.events.on("quirksUpdated", quirkChangeListener);
1098
+ return () => {
1099
+ context == null ? void 0 : context.events.off("quirksUpdated", quirkChangeListener);
1100
+ };
1101
+ }, [context]);
1102
+ return quirks;
1103
+ }
1104
+
1105
+ // src/components/VisibilityRulesWrapperClient.tsx
1106
+ var import_jsx_runtime4 = require("react/jsx-runtime");
1107
+ var VisibilityRulesWrapperClient = ({
1108
+ parameter,
1109
+ initialIsVisible,
1110
+ children
1111
+ }) => {
1112
+ const [isVisible, setIsVisible] = (0, import_react12.useState)(initialIsVisible);
1113
+ const [visibleSource, setVisibleSource] = (0, import_react12.useState)(
1114
+ initialIsVisible === null ? "unknown" : "server"
1115
+ );
1116
+ const quirks = useQuirks();
1117
+ const rules = (0, import_react12.useMemo)(() => {
1118
+ return {
1119
+ ...(0, import_canvas5.createQuirksVisibilityRule)(quirks)
1120
+ };
1121
+ }, [quirks]);
1122
+ (0, import_react12.useEffect)(() => {
1123
+ const result = (0, import_canvas5.evaluateNodeVisibilityParameter)({
1124
+ rules,
1125
+ parameter
1126
+ });
1127
+ if (visibleSource === "server" && initialIsVisible && !result) {
1128
+ return;
1129
+ }
1130
+ setIsVisible(result);
1131
+ setVisibleSource("client");
1132
+ }, [initialIsVisible, visibleSource, parameter, rules]);
1133
+ return isVisible ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children }) : null;
1134
+ };
1135
+
1136
+ // src/hooks/useScores.ts
1137
+ var import_react13 = require("react");
1138
+ function useScores() {
1139
+ const { context } = useUniformContext();
1140
+ const [scores, setScores] = (0, import_react13.useState)(context == null ? void 0 : context.scores);
1141
+ (0, import_react13.useEffect)(() => {
1142
+ if (!context) {
1143
+ return;
1144
+ }
1145
+ const scoringChangeListener = (updatedScores) => {
1146
+ setScores(updatedScores);
1147
+ };
1148
+ setScores(context.scores);
1149
+ context.events.on("scoresUpdated", scoringChangeListener);
1150
+ return () => {
1151
+ context.events.off("scoresUpdated", scoringChangeListener);
1152
+ };
1153
+ }, [context]);
1154
+ return scores;
1155
+ }
1092
1156
  // Annotate the CommonJS export names for ESM import in node:
1093
1157
  0 && (module.exports = {
1094
1158
  ClientContextPersonalizationTransfer,
@@ -1100,8 +1164,11 @@ var UniformScript = () => {
1100
1164
  PersonalizeClient,
1101
1165
  TestClient,
1102
1166
  UniformScript,
1167
+ VisibilityRulesWrapperClient,
1103
1168
  createClientUniformContext,
1104
1169
  useInitUniformContext,
1170
+ useQuirks,
1171
+ useScores,
1105
1172
  useUniformContext
1106
1173
  });
1107
1174
  /*! Bundled license information: