@picked/client 0.0.70-next.5 → 0.0.70-next.6
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/{api-B9koex39.cjs → api-CoUkIxIr.cjs} +1 -1
- package/dist/{api-DQ1DqG_F.js → api-ahdSBQ3Y.js} +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/docs/features.mdx +27 -13
- package/dist/docs/sdk/feature-allocation.md +16 -16
- package/dist/docs/sdk/features.md +30 -30
- package/dist/esm/index.js +257 -238
- package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
- package/dist/esm/server/index.js +1 -1
- package/dist/{plugin-EPx6sE_l.js → plugin-BxMR7fOV.js} +58 -53
- package/dist/plugin-CASdGtTX.cjs +1 -0
- package/dist/types/entities/feature/feature.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/hash.d.ts +40 -5
- package/dist/types/plugins/dynamic-experiences/hash.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/plugin-YbSSGrM7.cjs +0 -1
package/dist/esm/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { a as i, c as a, d as o, f as s, i as c, l, m as u, n as d, o as f, r as
|
|
|
5
5
|
import { a as _, i as v, r as ee, s as y, t as b } from "../dom-BwmTHeT7.js";
|
|
6
6
|
import { l as x, n as S, r as C, u as w } from "../experience-instance-DOJShRk5.js";
|
|
7
7
|
import { i as T, n as E, r as D, t as O } from "../storage-1MW3-_As.js";
|
|
8
|
-
import { n as te, r as ne } from "../api-
|
|
8
|
+
import { n as te, r as ne } from "../api-ahdSBQ3Y.js";
|
|
9
9
|
import { t as re } from "../id-Bo4RBeOs.js";
|
|
10
10
|
import { n as ie, r as ae, t as oe } from "../inert-script-report-B_bMPRzp.js";
|
|
11
11
|
import { attach as k, combine as A, createApi as j, createDomain as M, createEffect as N, createEvent as P, createStore as F, sample as I } from "effector";
|
|
@@ -257,13 +257,13 @@ var _e = L(({ client: e }) => {
|
|
|
257
257
|
function ve(e) {
|
|
258
258
|
return R(_e, e);
|
|
259
259
|
}
|
|
260
|
-
var
|
|
260
|
+
var ye = (e, t, n) => {
|
|
261
261
|
n.register({
|
|
262
262
|
name: e,
|
|
263
263
|
component: t
|
|
264
264
|
});
|
|
265
|
-
},
|
|
266
|
-
let t =
|
|
265
|
+
}, be = M("framework"), xe = L((e) => {
|
|
266
|
+
let t = be.store({}), n = j(t, { register(e, t) {
|
|
267
267
|
return {
|
|
268
268
|
...e,
|
|
269
269
|
[t.name]: t.framework
|
|
@@ -288,15 +288,15 @@ var B = (e, t, n) => {
|
|
|
288
288
|
listStore: a
|
|
289
289
|
};
|
|
290
290
|
});
|
|
291
|
-
function
|
|
292
|
-
return R(
|
|
291
|
+
function Se(e) {
|
|
292
|
+
return R(xe, e);
|
|
293
293
|
}
|
|
294
|
-
var
|
|
294
|
+
var Ce = (e, t) => {
|
|
295
295
|
t.register({
|
|
296
296
|
name: e.name,
|
|
297
297
|
framework: e
|
|
298
298
|
});
|
|
299
|
-
},
|
|
299
|
+
}, we = L(({ client: e }) => {
|
|
300
300
|
let t = "window" in globalThis, n = {
|
|
301
301
|
location: t ? globalThis.location : void 0,
|
|
302
302
|
document: t ? globalThis.document : void 0,
|
|
@@ -310,84 +310,84 @@ var Se = (e, t) => {
|
|
|
310
310
|
...n
|
|
311
311
|
}));
|
|
312
312
|
});
|
|
313
|
-
function
|
|
314
|
-
return R(
|
|
313
|
+
function Te(e) {
|
|
314
|
+
return R(we, e);
|
|
315
315
|
}
|
|
316
316
|
//#endregion
|
|
317
317
|
//#region src/logic-engine.ts
|
|
318
|
-
function
|
|
318
|
+
function Ee(e) {
|
|
319
319
|
return typeof e == "number" && !isNaN(e);
|
|
320
320
|
}
|
|
321
|
-
function
|
|
321
|
+
function B(e) {
|
|
322
322
|
return typeof e == "string";
|
|
323
323
|
}
|
|
324
|
-
function
|
|
324
|
+
function V(e) {
|
|
325
325
|
return Array.isArray(e);
|
|
326
326
|
}
|
|
327
|
-
function
|
|
327
|
+
function De(e) {
|
|
328
328
|
return e instanceof Promise;
|
|
329
329
|
}
|
|
330
|
-
function
|
|
330
|
+
function Oe(e) {
|
|
331
331
|
return typeof e == "object" && !!e && !Array.isArray(e) && Object.keys(e).length === 1;
|
|
332
332
|
}
|
|
333
|
-
function
|
|
334
|
-
if (
|
|
333
|
+
function H(e) {
|
|
334
|
+
if (Ee(e)) return e;
|
|
335
335
|
let t = parseFloat(`${e}`);
|
|
336
336
|
return isNaN(t) ? 0 : t;
|
|
337
337
|
}
|
|
338
|
-
function
|
|
338
|
+
function U(e) {
|
|
339
339
|
return `${e}`;
|
|
340
340
|
}
|
|
341
|
-
var
|
|
341
|
+
var ke = {
|
|
342
342
|
"==": (e, t) => e == t,
|
|
343
343
|
"===": (e, t) => e === t,
|
|
344
344
|
"!=": (e, t) => e != t,
|
|
345
345
|
"!==": (e, t) => e !== t,
|
|
346
|
-
">": (e, t) =>
|
|
347
|
-
">=": (e, t) =>
|
|
346
|
+
">": (e, t) => H(e) > H(t),
|
|
347
|
+
">=": (e, t) => H(e) >= H(t),
|
|
348
348
|
"<": (e, t, n) => {
|
|
349
|
-
let r =
|
|
349
|
+
let r = H(e), i = H(t);
|
|
350
350
|
if (n === void 0) return r < i;
|
|
351
|
-
let a =
|
|
351
|
+
let a = H(n);
|
|
352
352
|
return r < i && i < a;
|
|
353
353
|
},
|
|
354
354
|
"<=": (e, t, n) => {
|
|
355
|
-
let r =
|
|
355
|
+
let r = H(e), i = H(t);
|
|
356
356
|
if (n === void 0) return r <= i;
|
|
357
|
-
let a =
|
|
357
|
+
let a = H(n);
|
|
358
358
|
return r <= i && i <= a;
|
|
359
359
|
},
|
|
360
|
-
"!!": async (e) => await
|
|
361
|
-
"!": async (e) => !await
|
|
362
|
-
"%": (e, t) =>
|
|
360
|
+
"!!": async (e) => await G(e),
|
|
361
|
+
"!": async (e) => !await G(e),
|
|
362
|
+
"%": (e, t) => H(e) % H(t),
|
|
363
363
|
log: (e) => (console.log(e), e),
|
|
364
|
-
in: (e, t) => t ?
|
|
365
|
-
cat: (...e) => e.map(
|
|
364
|
+
in: (e, t) => t ? B(t) ? t.indexOf(U(e)) !== -1 : V(t) ? t.includes(e) : !1 : !1,
|
|
365
|
+
cat: (...e) => e.map(U).join(""),
|
|
366
366
|
substr: (e, t, n) => {
|
|
367
|
-
let r =
|
|
367
|
+
let r = U(e), i = H(t);
|
|
368
368
|
if (n === void 0) return r.substr(i);
|
|
369
|
-
let a =
|
|
369
|
+
let a = H(n);
|
|
370
370
|
if (a < 0) {
|
|
371
371
|
let e = r.substr(i);
|
|
372
372
|
return e.substr(0, e.length + a);
|
|
373
373
|
}
|
|
374
374
|
return r.substr(i, a);
|
|
375
375
|
},
|
|
376
|
-
"+": (...e) => e.reduce((e, t) =>
|
|
377
|
-
"*": (...e) => e.reduce((e, t) =>
|
|
376
|
+
"+": (...e) => e.reduce((e, t) => H(e) + H(t), 0),
|
|
377
|
+
"*": (...e) => e.reduce((e, t) => H(e) * H(t), 1),
|
|
378
378
|
"-": (e, t) => {
|
|
379
|
-
let n =
|
|
380
|
-
return t === void 0 ? -n : n -
|
|
379
|
+
let n = H(e);
|
|
380
|
+
return t === void 0 ? -n : n - H(t);
|
|
381
381
|
},
|
|
382
|
-
"/": (e, t) =>
|
|
383
|
-
min: (...e) => Math.min(...e.map(
|
|
384
|
-
max: (...e) => Math.max(...e.map(
|
|
385
|
-
merge: (...e) => e.reduce((e, t) =>
|
|
382
|
+
"/": (e, t) => H(e) / H(t),
|
|
383
|
+
min: (...e) => Math.min(...e.map(H)),
|
|
384
|
+
max: (...e) => Math.max(...e.map(H)),
|
|
385
|
+
merge: (...e) => e.reduce((e, t) => V(t) ? e.concat(t) : e.concat([t]), []),
|
|
386
386
|
var(e, t) {
|
|
387
387
|
let n = arguments.length > 1 ? t : null;
|
|
388
388
|
if (e === "" || e === "." || e == null) return this;
|
|
389
389
|
if (typeof e == "number" && Array.isArray(this)) return e >= 0 && e < this.length ? this[e] : n;
|
|
390
|
-
let r =
|
|
390
|
+
let r = U(e);
|
|
391
391
|
if (r === "" || r === ".") return this;
|
|
392
392
|
let i = r.split("."), a = this;
|
|
393
393
|
for (let e of i) {
|
|
@@ -400,126 +400,126 @@ var Oe = {
|
|
|
400
400
|
return a === void 0 ? n : a;
|
|
401
401
|
},
|
|
402
402
|
async missing(...e) {
|
|
403
|
-
let t =
|
|
403
|
+
let t = V(e[0]) ? e[0] : e, n = [];
|
|
404
404
|
for (let e of t) {
|
|
405
|
-
let t = await
|
|
405
|
+
let t = await W({ var: e }, this);
|
|
406
406
|
(t === null || t === "") && n.push(`${e}`);
|
|
407
407
|
}
|
|
408
408
|
return n;
|
|
409
409
|
},
|
|
410
410
|
async missing_some(e, t) {
|
|
411
|
-
let n = await
|
|
412
|
-
if (!
|
|
413
|
-
let r = n.filter(
|
|
414
|
-
return t.filter(
|
|
411
|
+
let n = await W({ missing: t }, this);
|
|
412
|
+
if (!V(n) || !V(t)) return [];
|
|
413
|
+
let r = n.filter(B);
|
|
414
|
+
return t.filter(B).length - r.length >= H(e) ? [] : r;
|
|
415
415
|
},
|
|
416
416
|
invoke(...e) {
|
|
417
417
|
let [t, ...n] = e;
|
|
418
418
|
return typeof t == "function" ? Reflect.apply(t, null, n) : null;
|
|
419
419
|
},
|
|
420
|
-
startsWith: (e, t) =>
|
|
421
|
-
endsWith: (e, t) =>
|
|
420
|
+
startsWith: (e, t) => B(e) && B(t) && e.startsWith(t),
|
|
421
|
+
endsWith: (e, t) => B(e) && B(t) && e.endsWith(t),
|
|
422
422
|
regexp_matches(e, t) {
|
|
423
423
|
let n = e, r = "";
|
|
424
|
-
if (
|
|
424
|
+
if (V(e)) {
|
|
425
425
|
let [t, i] = e;
|
|
426
426
|
n = t, r = i;
|
|
427
427
|
}
|
|
428
|
-
return !
|
|
428
|
+
return !B(n) || !B(r) ? !1 : new RegExp(n, r).test(U(t));
|
|
429
429
|
},
|
|
430
430
|
throw(e) {
|
|
431
|
-
throw Error(
|
|
431
|
+
throw Error(U(e));
|
|
432
432
|
}
|
|
433
433
|
};
|
|
434
|
-
async function
|
|
434
|
+
async function W(e, t) {
|
|
435
435
|
if (!e) return e;
|
|
436
|
-
if (
|
|
437
|
-
if (
|
|
438
|
-
if (!
|
|
439
|
-
let n =
|
|
440
|
-
switch (
|
|
436
|
+
if (De(e)) return W(await e, t);
|
|
437
|
+
if (V(e)) return Promise.all(e.map((e) => W(e, t)));
|
|
438
|
+
if (!Oe(e)) return e;
|
|
439
|
+
let n = Ae(e), r = n ? e[n] ?? [] : [];
|
|
440
|
+
switch (V(r) || (r = [r]), n) {
|
|
441
441
|
case "if":
|
|
442
442
|
case "?:":
|
|
443
|
-
for (let e = 0; e < r.length - 1; e += 2) if (await
|
|
444
|
-
return r.length % 2 == 1 ?
|
|
443
|
+
for (let e = 0; e < r.length - 1; e += 2) if (await G(await W(r[e], t))) return W(r[e + 1], t);
|
|
444
|
+
return r.length % 2 == 1 ? W(r[r.length - 1], t) : null;
|
|
445
445
|
case "and": {
|
|
446
446
|
let e = null;
|
|
447
|
-
for (let n of r) if (e = await
|
|
447
|
+
for (let n of r) if (e = await W(n, t), !await G(e)) return e;
|
|
448
448
|
return e;
|
|
449
449
|
}
|
|
450
450
|
case "or": {
|
|
451
451
|
let e = null;
|
|
452
|
-
for (let n of r) if (e = await
|
|
452
|
+
for (let n of r) if (e = await W(n, t), await G(e)) return e;
|
|
453
453
|
return e;
|
|
454
454
|
}
|
|
455
455
|
case "map": {
|
|
456
|
-
let e = await
|
|
457
|
-
return
|
|
456
|
+
let e = await W(r[0], t);
|
|
457
|
+
return V(e) ? await Promise.all(e.map((e) => W(r[1], e))) : [];
|
|
458
458
|
}
|
|
459
459
|
case "filter": {
|
|
460
|
-
let e = await
|
|
461
|
-
return
|
|
460
|
+
let e = await W(r[0], t);
|
|
461
|
+
return V(e) ? (await Promise.all(e.map(async (e) => ({
|
|
462
462
|
item: e,
|
|
463
|
-
shouldInclude: await
|
|
463
|
+
shouldInclude: await G(await W(r[1], e))
|
|
464
464
|
})))).filter(({ shouldInclude: e }) => e).map(({ item: e }) => e) : [];
|
|
465
465
|
}
|
|
466
466
|
case "reduce": {
|
|
467
|
-
let e = await
|
|
468
|
-
if (!
|
|
469
|
-
let n = r[1], i = r.length > 2 ? await
|
|
470
|
-
for (let t of e) i = await
|
|
467
|
+
let e = await W(r[0], t);
|
|
468
|
+
if (!V(e)) return r.length > 2 ? await W(r[2], t) : null;
|
|
469
|
+
let n = r[1], i = r.length > 2 ? await W(r[2], t) : null;
|
|
470
|
+
for (let t of e) i = await W(n, {
|
|
471
471
|
current: t,
|
|
472
472
|
accumulator: i
|
|
473
473
|
});
|
|
474
474
|
return i;
|
|
475
475
|
}
|
|
476
476
|
case "all": {
|
|
477
|
-
let e = await
|
|
478
|
-
if (!
|
|
479
|
-
for (let t of e) if (!await
|
|
477
|
+
let e = await W(r[0], t);
|
|
478
|
+
if (!V(e) || e.length === 0) return !1;
|
|
479
|
+
for (let t of e) if (!await G(await W(r[1], t))) return !1;
|
|
480
480
|
return !0;
|
|
481
481
|
}
|
|
482
482
|
case "some": {
|
|
483
|
-
let e = await
|
|
484
|
-
if (!
|
|
485
|
-
for (let t of e) if (await
|
|
483
|
+
let e = await W(r[0], t);
|
|
484
|
+
if (!V(e)) return !1;
|
|
485
|
+
for (let t of e) if (await G(await W(r[1], t))) return !0;
|
|
486
486
|
return !1;
|
|
487
487
|
}
|
|
488
488
|
case "none": {
|
|
489
|
-
let e = await
|
|
490
|
-
if (!
|
|
491
|
-
for (let t of e) if (await
|
|
489
|
+
let e = await W(r[0], t);
|
|
490
|
+
if (!V(e)) return !0;
|
|
491
|
+
for (let t of e) if (await G(await W(r[1], t))) return !1;
|
|
492
492
|
return !0;
|
|
493
493
|
}
|
|
494
494
|
case "catch": try {
|
|
495
|
-
return await
|
|
495
|
+
return await W(r[0], t);
|
|
496
496
|
} catch (e) {
|
|
497
|
-
return
|
|
497
|
+
return Oe(e) ? await W(e, t) : r[1] ? await W(r[1], e) : e instanceof Error ? e.message : e;
|
|
498
498
|
}
|
|
499
499
|
}
|
|
500
|
-
let i = await Promise.all(r.map((e) =>
|
|
500
|
+
let i = await Promise.all(r.map((e) => W(e, t))), a = n ? ke[n] : void 0;
|
|
501
501
|
if (!a) throw Error(`Unrecognized operation ${n}`);
|
|
502
502
|
return a.apply(t, i);
|
|
503
503
|
}
|
|
504
|
-
async function
|
|
505
|
-
return
|
|
504
|
+
async function G(e) {
|
|
505
|
+
return De(e) ? G(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
|
|
506
506
|
}
|
|
507
|
-
function
|
|
507
|
+
function Ae(e) {
|
|
508
508
|
return Object.keys(e)[0];
|
|
509
509
|
}
|
|
510
510
|
//#endregion
|
|
511
511
|
//#region src/lifecycle/rules-logic.ts
|
|
512
|
-
function
|
|
512
|
+
function je(e, t, n) {
|
|
513
513
|
return new Proxy(Object.create(null), { get(r, i) {
|
|
514
514
|
if (typeof i != "string") return;
|
|
515
515
|
let a = e.find((e) => e.key === i);
|
|
516
|
-
if (a !== void 0) return async () => n.has(i) ? !1 : await
|
|
516
|
+
if (a !== void 0) return async () => n.has(i) ? !1 : await W(a.logic, {
|
|
517
517
|
...t,
|
|
518
|
-
conditions:
|
|
518
|
+
conditions: je(e, t, new Set(n).add(i))
|
|
519
519
|
}) === !0;
|
|
520
520
|
} });
|
|
521
521
|
}
|
|
522
|
-
var
|
|
522
|
+
var Me = L(({ client: e }) => k({
|
|
523
523
|
source: {
|
|
524
524
|
stateSnapshot: e.stateSnapshotStore,
|
|
525
525
|
predicates: e.predicates.listStore,
|
|
@@ -556,21 +556,21 @@ var je = L(({ client: e }) => k({
|
|
|
556
556
|
features: u,
|
|
557
557
|
...s
|
|
558
558
|
};
|
|
559
|
-
return await
|
|
559
|
+
return await W(o, {
|
|
560
560
|
...d,
|
|
561
|
-
conditions:
|
|
561
|
+
conditions: je(a, d, /* @__PURE__ */ new Set())
|
|
562
562
|
});
|
|
563
563
|
}
|
|
564
564
|
}));
|
|
565
|
-
function
|
|
566
|
-
return R(
|
|
565
|
+
function Ne(e) {
|
|
566
|
+
return R(Me, e);
|
|
567
567
|
}
|
|
568
568
|
//#endregion
|
|
569
569
|
//#region src/ping.ts
|
|
570
|
-
var
|
|
570
|
+
var Pe = 6e3, Fe = O("last_ping", "global"), Ie = async (e) => {
|
|
571
571
|
try {
|
|
572
|
-
let t = Date.now(), n = E.get(
|
|
573
|
-
if (n.isSet() && (r = n.json() ?? 0), r && t - r <
|
|
572
|
+
let t = Date.now(), n = E.get(Fe), r = 0;
|
|
573
|
+
if (n.isSet() && (r = n.json() ?? 0), r && t - r < Pe) return !0;
|
|
574
574
|
let i = {
|
|
575
575
|
projectId: e.projectId,
|
|
576
576
|
path: window.location.pathname
|
|
@@ -581,23 +581,23 @@ var Ne = 6e3, Pe = O("last_ping", "global"), Fe = async (e) => {
|
|
|
581
581
|
} catch {
|
|
582
582
|
return !1;
|
|
583
583
|
}
|
|
584
|
-
},
|
|
585
|
-
let t =
|
|
584
|
+
}, K = M("lifecycle"), Le = L(({ client: e }) => {
|
|
585
|
+
let t = K.store(!1), r = F(void 0, {
|
|
586
586
|
skipVoid: !1,
|
|
587
|
-
domain:
|
|
587
|
+
domain: K
|
|
588
588
|
}), i = F(void 0, {
|
|
589
589
|
skipVoid: !1,
|
|
590
|
-
domain:
|
|
591
|
-
}), a =
|
|
590
|
+
domain: K
|
|
591
|
+
}), a = K.store("idle"), o = K.store([]), s = F(void 0, {
|
|
592
592
|
skipVoid: !1,
|
|
593
|
-
domain:
|
|
593
|
+
domain: K
|
|
594
594
|
}), l = F(void 0, {
|
|
595
595
|
skipVoid: !1,
|
|
596
|
-
domain:
|
|
596
|
+
domain: K
|
|
597
597
|
}), u = P(), d = P(), f = P(), p = P(), m = P(), h = P();
|
|
598
598
|
o.on(p, (e, t) => [...e, t]), s.on(m, (e, t) => t), l.on(h, (e, t) => t), t.on(d, () => !0);
|
|
599
599
|
let g = N(() => {
|
|
600
|
-
|
|
600
|
+
Ie(e);
|
|
601
601
|
}), _ = N(async () => {
|
|
602
602
|
await ee();
|
|
603
603
|
}), v = N(async () => {
|
|
@@ -726,13 +726,13 @@ var Ne = 6e3, Pe = O("last_ping", "global"), Fe = async (e) => {
|
|
|
726
726
|
setCondition: h
|
|
727
727
|
};
|
|
728
728
|
});
|
|
729
|
-
function
|
|
730
|
-
return R(
|
|
729
|
+
function Re(e) {
|
|
730
|
+
return R(Le, e);
|
|
731
731
|
}
|
|
732
732
|
//#endregion
|
|
733
733
|
//#region src/entities/predicate/predicate.ts
|
|
734
|
-
var
|
|
735
|
-
let t =
|
|
734
|
+
var ze = M("predicate"), Be = L(({ client: e }) => {
|
|
735
|
+
let t = ze.store({}), n = j(t, { register(e, t) {
|
|
736
736
|
return {
|
|
737
737
|
...e,
|
|
738
738
|
[t.name]: {
|
|
@@ -790,16 +790,20 @@ var Re = M("predicate"), ze = L(({ client: e }) => {
|
|
|
790
790
|
getEvokablePredicate: s
|
|
791
791
|
};
|
|
792
792
|
});
|
|
793
|
-
function
|
|
794
|
-
return R(
|
|
793
|
+
function Ve(e) {
|
|
794
|
+
return R(Be, e);
|
|
795
795
|
}
|
|
796
|
-
var
|
|
796
|
+
var He = (e, t, n) => {
|
|
797
797
|
n.register({
|
|
798
798
|
name: e,
|
|
799
799
|
predicate: t
|
|
800
800
|
});
|
|
801
|
-
},
|
|
802
|
-
|
|
801
|
+
}, Ue = M("feature");
|
|
802
|
+
function q(e) {
|
|
803
|
+
return e?.enabled === !1;
|
|
804
|
+
}
|
|
805
|
+
var We = L(({ client: e }) => {
|
|
806
|
+
let t = Ue.store({}), n = Ue.store([]), i = j(t, { register(e, t) {
|
|
803
807
|
return {
|
|
804
808
|
...e,
|
|
805
809
|
[t.id]: t.feature
|
|
@@ -824,12 +828,13 @@ var Ve = (e, t, n) => {
|
|
|
824
828
|
}),
|
|
825
829
|
target: i.register
|
|
826
830
|
});
|
|
827
|
-
let o = N(async ({ id: e, key: t, storage: n = "local" }) => {
|
|
828
|
-
|
|
829
|
-
|
|
831
|
+
let o = N(async ({ id: e, key: t, storage: n = "local", enabled: r }) => {
|
|
832
|
+
if (r === !1) return null;
|
|
833
|
+
let i = O(`feature:${e}:${t}`, "global"), a = (n === "session" ? D : E).get(i).boolean();
|
|
834
|
+
return a === null ? null : {
|
|
830
835
|
id: e,
|
|
831
836
|
key: t,
|
|
832
|
-
bucket:
|
|
837
|
+
bucket: a,
|
|
833
838
|
storage: n
|
|
834
839
|
};
|
|
835
840
|
}), s = N((e) => {
|
|
@@ -846,6 +851,12 @@ var Ve = (e, t, n) => {
|
|
|
846
851
|
if (a) return a;
|
|
847
852
|
let o = e[n];
|
|
848
853
|
if (!o) throw Error(`Feature with id '${n}' not found`);
|
|
854
|
+
if (q(o.feature)) return {
|
|
855
|
+
id: o.id,
|
|
856
|
+
bucket: !1,
|
|
857
|
+
key: i,
|
|
858
|
+
storage: o.feature.storage
|
|
859
|
+
};
|
|
849
860
|
let s = c.get(`${n}:${i}`);
|
|
850
861
|
if (s !== void 0) {
|
|
851
862
|
let e = await s;
|
|
@@ -874,13 +885,15 @@ var Ve = (e, t, n) => {
|
|
|
874
885
|
return {
|
|
875
886
|
id: t,
|
|
876
887
|
key: n.feature.key,
|
|
877
|
-
storage: n.feature.storage
|
|
888
|
+
storage: n.feature.storage,
|
|
889
|
+
enabled: n.feature.enabled
|
|
878
890
|
};
|
|
879
891
|
},
|
|
880
892
|
target: o
|
|
881
893
|
}), I({
|
|
882
894
|
source: t,
|
|
883
895
|
clock: l.doneData,
|
|
896
|
+
filter: (e, t) => !q(e[t.id]?.feature),
|
|
884
897
|
fn: (e, t) => {
|
|
885
898
|
let { id: n, bucket: r, storage: i } = t, a = e[n]?.feature.key;
|
|
886
899
|
return a ? {
|
|
@@ -920,8 +933,11 @@ var Ve = (e, t, n) => {
|
|
|
920
933
|
}));
|
|
921
934
|
I({
|
|
922
935
|
clock: l.doneData,
|
|
923
|
-
source: {
|
|
924
|
-
|
|
936
|
+
source: {
|
|
937
|
+
resolvedFeatures: n,
|
|
938
|
+
allFeatures: t
|
|
939
|
+
},
|
|
940
|
+
filter: ({ resolvedFeatures: e, allFeatures: t }, { id: n, key: r }) => q(t[n]?.feature) ? !1 : !e.some((e) => e.id === n && e.key === r),
|
|
925
941
|
fn: (e, t) => t,
|
|
926
942
|
target: e.eventBus.prepend((e) => ({
|
|
927
943
|
type: "feature_decide",
|
|
@@ -929,8 +945,11 @@ var Ve = (e, t, n) => {
|
|
|
929
945
|
}))
|
|
930
946
|
}), I({
|
|
931
947
|
clock: [o.doneData, l.doneData],
|
|
932
|
-
source:
|
|
933
|
-
|
|
948
|
+
source: {
|
|
949
|
+
resolvedFeatures: n,
|
|
950
|
+
allFeatures: t
|
|
951
|
+
},
|
|
952
|
+
fn: ({ resolvedFeatures: e, allFeatures: t }, n) => !n || q(t[n.id]?.feature) || e.some((e) => e.id === n.id && e.key === n.key) ? e : [...e, n],
|
|
934
953
|
target: n
|
|
935
954
|
});
|
|
936
955
|
function d(e) {
|
|
@@ -964,16 +983,16 @@ var Ve = (e, t, n) => {
|
|
|
964
983
|
getEvokableFeature: p
|
|
965
984
|
};
|
|
966
985
|
});
|
|
967
|
-
function
|
|
968
|
-
return R(
|
|
986
|
+
function Ge(e) {
|
|
987
|
+
return R(We, e);
|
|
969
988
|
}
|
|
970
|
-
var
|
|
989
|
+
var Ke = (e, t, n) => {
|
|
971
990
|
n.register({
|
|
972
991
|
id: e,
|
|
973
992
|
feature: t
|
|
974
993
|
});
|
|
975
994
|
}, J = M("history");
|
|
976
|
-
function
|
|
995
|
+
function qe(e, t) {
|
|
977
996
|
return {
|
|
978
997
|
id: re(`history-entry-${Date.now()}-${Math.random()}}`),
|
|
979
998
|
node: t,
|
|
@@ -981,9 +1000,9 @@ function Ke(e, t) {
|
|
|
981
1000
|
experienceId: e
|
|
982
1001
|
};
|
|
983
1002
|
}
|
|
984
|
-
var
|
|
1003
|
+
var Je = L(() => {
|
|
985
1004
|
let e = J.store({ entries: [] }), t = J.event(), n = J.event(), r = J.event(), i = J.event();
|
|
986
|
-
e.on(t, (e, t) => ({ entries: [...e.entries,
|
|
1005
|
+
e.on(t, (e, t) => ({ entries: [...e.entries, qe(t.experienceId, t.node)] })), e.on(n, (e, t) => ({ entries: [...e.entries.slice(0, -1), qe(t.experienceId, t.node)] })), e.on(i, (e, t) => t);
|
|
987
1006
|
function a(e, t) {
|
|
988
1007
|
let n = {
|
|
989
1008
|
lastStepIndex: -1,
|
|
@@ -1013,20 +1032,20 @@ var qe = L(() => {
|
|
|
1013
1032
|
entriesStore: e.map((e) => e.entries)
|
|
1014
1033
|
};
|
|
1015
1034
|
});
|
|
1016
|
-
function
|
|
1017
|
-
return R(
|
|
1035
|
+
function Ye() {
|
|
1036
|
+
return R(Je);
|
|
1018
1037
|
}
|
|
1019
1038
|
//#endregion
|
|
1020
1039
|
//#region src/utils/events.ts
|
|
1021
|
-
var
|
|
1040
|
+
var Xe = 0, Ze = (e) => {
|
|
1022
1041
|
let t = F([]);
|
|
1023
1042
|
return t.on(e, (e, t) => [...e, {
|
|
1024
|
-
id:
|
|
1043
|
+
id: Xe++,
|
|
1025
1044
|
at: /* @__PURE__ */ new Date(),
|
|
1026
1045
|
payload: t
|
|
1027
1046
|
}]), t;
|
|
1028
|
-
},
|
|
1029
|
-
let e =
|
|
1047
|
+
}, Qe = M("field"), $e = L(() => {
|
|
1048
|
+
let e = Qe.store({}), t = j(e, {
|
|
1030
1049
|
register(e, t) {
|
|
1031
1050
|
return {
|
|
1032
1051
|
...e,
|
|
@@ -1074,13 +1093,13 @@ var Ye = 0, Xe = (e) => {
|
|
|
1074
1093
|
getByName: c
|
|
1075
1094
|
};
|
|
1076
1095
|
});
|
|
1077
|
-
function
|
|
1078
|
-
return R(
|
|
1096
|
+
function et() {
|
|
1097
|
+
return R($e);
|
|
1079
1098
|
}
|
|
1080
1099
|
//#endregion
|
|
1081
1100
|
//#region src/entities/step/step.ts
|
|
1082
|
-
var
|
|
1083
|
-
let e =
|
|
1101
|
+
var tt = M("step"), nt = L(() => {
|
|
1102
|
+
let e = tt.store({}), t = j(e, { register(e, t) {
|
|
1084
1103
|
return {
|
|
1085
1104
|
...e,
|
|
1086
1105
|
[t.step.id]: t.step
|
|
@@ -1104,16 +1123,16 @@ var et = M("step"), tt = L(() => {
|
|
|
1104
1123
|
indexStore: e
|
|
1105
1124
|
};
|
|
1106
1125
|
});
|
|
1107
|
-
function
|
|
1108
|
-
return R(
|
|
1126
|
+
function rt() {
|
|
1127
|
+
return R(nt);
|
|
1109
1128
|
}
|
|
1110
|
-
function
|
|
1129
|
+
function it(e, t) {
|
|
1111
1130
|
t.register(e);
|
|
1112
1131
|
}
|
|
1113
1132
|
//#endregion
|
|
1114
1133
|
//#region src/entities/content/content.ts
|
|
1115
|
-
var
|
|
1116
|
-
let e =
|
|
1134
|
+
var at = M("content"), ot = L(() => {
|
|
1135
|
+
let e = at.store({}), t = j(e, {
|
|
1117
1136
|
register(e, t) {
|
|
1118
1137
|
return {
|
|
1119
1138
|
...e,
|
|
@@ -1154,16 +1173,16 @@ var it = M("content"), at = L(() => {
|
|
|
1154
1173
|
indexStore: e
|
|
1155
1174
|
};
|
|
1156
1175
|
});
|
|
1157
|
-
function
|
|
1158
|
-
return R(
|
|
1176
|
+
function st() {
|
|
1177
|
+
return R(ot);
|
|
1159
1178
|
}
|
|
1160
|
-
function
|
|
1179
|
+
function ct(e, t) {
|
|
1161
1180
|
t.register(e);
|
|
1162
1181
|
}
|
|
1163
1182
|
//#endregion
|
|
1164
1183
|
//#region src/entities/action/action.ts
|
|
1165
|
-
var
|
|
1166
|
-
let t =
|
|
1184
|
+
var lt = M("action"), ut = L(({ client: e }) => {
|
|
1185
|
+
let t = lt.store({}), n = j(t, { register(e, t) {
|
|
1167
1186
|
return {
|
|
1168
1187
|
...e,
|
|
1169
1188
|
[t.key]: {
|
|
@@ -1221,10 +1240,10 @@ var ct = M("action"), lt = L(({ client: e }) => {
|
|
|
1221
1240
|
getEvokableAction: s
|
|
1222
1241
|
};
|
|
1223
1242
|
});
|
|
1224
|
-
function
|
|
1225
|
-
return R(
|
|
1243
|
+
function dt(e) {
|
|
1244
|
+
return R(ut, e);
|
|
1226
1245
|
}
|
|
1227
|
-
var
|
|
1246
|
+
var ft = (e, t, n) => {
|
|
1228
1247
|
n.register({
|
|
1229
1248
|
key: e,
|
|
1230
1249
|
action: t
|
|
@@ -1243,35 +1262,35 @@ function Y(e, t, n, r) {
|
|
|
1243
1262
|
function X(e) {
|
|
1244
1263
|
return e === null || e === "" || Array.isArray(e) && !e.length;
|
|
1245
1264
|
}
|
|
1246
|
-
function
|
|
1265
|
+
function pt(e) {
|
|
1247
1266
|
return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || e === null;
|
|
1248
1267
|
}
|
|
1249
|
-
function
|
|
1268
|
+
function mt(e) {
|
|
1250
1269
|
try {
|
|
1251
1270
|
return JSON.stringify(e), !0;
|
|
1252
1271
|
} catch {
|
|
1253
1272
|
return !1;
|
|
1254
1273
|
}
|
|
1255
1274
|
}
|
|
1256
|
-
function
|
|
1275
|
+
function ht(e, t) {
|
|
1257
1276
|
return t.find((t) => t.key === e) ?? null;
|
|
1258
1277
|
}
|
|
1259
|
-
function
|
|
1278
|
+
function gt(e, t) {
|
|
1260
1279
|
return e.multiple && (typeof t == "string" || typeof t == "number" || typeof t == "boolean") ? [t] : t;
|
|
1261
1280
|
}
|
|
1262
|
-
function
|
|
1281
|
+
function _t(e, t) {
|
|
1263
1282
|
if (e.type !== "object" || X(t)) return null;
|
|
1264
1283
|
if (e.multiple) {
|
|
1265
1284
|
if (!Array.isArray(t)) return Y(e, t, "This field expects multiple values", "Field expects an array of objects.");
|
|
1266
1285
|
for (let n of t) {
|
|
1267
1286
|
if (typeof n != "object" || !n) return Y(e, t, "This field expects object values", "Field expects an array of objects, but received non-object value.");
|
|
1268
|
-
if (!
|
|
1287
|
+
if (!mt(n)) return Y(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
|
|
1269
1288
|
}
|
|
1270
1289
|
return null;
|
|
1271
1290
|
}
|
|
1272
|
-
return Array.isArray(t) ? Y(e, t, "This field expects a single value", "Field expects a single object, not an array.") : typeof t != "object" || !t ? Y(e, t, "This field expects an object value", "Field expects an object value.") :
|
|
1291
|
+
return Array.isArray(t) ? Y(e, t, "This field expects a single value", "Field expects a single object, not an array.") : typeof t != "object" || !t ? Y(e, t, "This field expects an object value", "Field expects an object value.") : mt(t) ? null : Y(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
|
|
1273
1292
|
}
|
|
1274
|
-
function
|
|
1293
|
+
function vt(e, t) {
|
|
1275
1294
|
if (X(t) || !Array.isArray(e.options) || e.options.length === 0) return null;
|
|
1276
1295
|
let n = Array.isArray(t) ? t : [t];
|
|
1277
1296
|
if (e.type === "object") {
|
|
@@ -1279,9 +1298,9 @@ function _t(e, t) {
|
|
|
1279
1298
|
return n.every((e) => r.has(JSON.stringify(e))) ? null : Y(e, t, "This field expects a valid option", "Field expects a valid option from the defined choices.");
|
|
1280
1299
|
}
|
|
1281
1300
|
let r = e.options.map((e) => e.value);
|
|
1282
|
-
return n.every((e) => !
|
|
1301
|
+
return n.every((e) => !pt(e) || e === null ? !1 : r.includes(e)) ? null : Y(e, t, "This field expects a valid option", `Field expects a valid option. Valid options are: ${r.join(", ")}`);
|
|
1283
1302
|
}
|
|
1284
|
-
async function
|
|
1303
|
+
async function yt(t, n, r, i) {
|
|
1285
1304
|
if (n.validation && !e(n.validation) && !X(r)) {
|
|
1286
1305
|
let e = i ? {
|
|
1287
1306
|
$input: r,
|
|
@@ -1294,8 +1313,8 @@ async function vt(t, n, r, i) {
|
|
|
1294
1313
|
}
|
|
1295
1314
|
//#endregion
|
|
1296
1315
|
//#region src/entities/response/response.ts
|
|
1297
|
-
var
|
|
1298
|
-
let t =
|
|
1316
|
+
var bt = M("response"), xt = L(({ client: e }) => {
|
|
1317
|
+
let t = bt.store({}), r = P(), i = P(), a = j(t, {
|
|
1299
1318
|
register(e, t) {
|
|
1300
1319
|
return {
|
|
1301
1320
|
...e,
|
|
@@ -1334,7 +1353,7 @@ var yt = M("response"), bt = L(({ client: e }) => {
|
|
|
1334
1353
|
...t,
|
|
1335
1354
|
...n
|
|
1336
1355
|
}, o = Object.entries(n), c = await Promise.allSettled(o.map(async ([t, n]) => {
|
|
1337
|
-
let o =
|
|
1356
|
+
let o = ht(t, e);
|
|
1338
1357
|
if (!o) {
|
|
1339
1358
|
r.push({
|
|
1340
1359
|
fieldKey: t,
|
|
@@ -1344,17 +1363,17 @@ var yt = M("response"), bt = L(({ client: e }) => {
|
|
|
1344
1363
|
});
|
|
1345
1364
|
return;
|
|
1346
1365
|
}
|
|
1347
|
-
let c =
|
|
1366
|
+
let c = gt(o, n), l = await yt(s, o, c, a);
|
|
1348
1367
|
if (l) {
|
|
1349
1368
|
r.push(l);
|
|
1350
1369
|
return;
|
|
1351
1370
|
}
|
|
1352
|
-
let u =
|
|
1371
|
+
let u = _t(o, c);
|
|
1353
1372
|
if (u) {
|
|
1354
1373
|
r.push(u);
|
|
1355
1374
|
return;
|
|
1356
1375
|
}
|
|
1357
|
-
let d =
|
|
1376
|
+
let d = vt(o, c);
|
|
1358
1377
|
if (d) {
|
|
1359
1378
|
r.push(d);
|
|
1360
1379
|
return;
|
|
@@ -1433,13 +1452,13 @@ var yt = M("response"), bt = L(({ client: e }) => {
|
|
|
1433
1452
|
getByFieldName: _
|
|
1434
1453
|
};
|
|
1435
1454
|
});
|
|
1436
|
-
function
|
|
1437
|
-
return R(
|
|
1455
|
+
function St(e) {
|
|
1456
|
+
return R(xt, e);
|
|
1438
1457
|
}
|
|
1439
1458
|
//#endregion
|
|
1440
1459
|
//#region src/entities/condition/condition.ts
|
|
1441
|
-
var
|
|
1442
|
-
let e =
|
|
1460
|
+
var Ct = M("condition"), wt = L(() => {
|
|
1461
|
+
let e = Ct.store({}), t = j(e, { register(e, t) {
|
|
1443
1462
|
return {
|
|
1444
1463
|
...e,
|
|
1445
1464
|
[t.condition.id]: t.condition
|
|
@@ -1463,12 +1482,12 @@ var St = M("condition"), Ct = L(() => {
|
|
|
1463
1482
|
indexStore: e
|
|
1464
1483
|
};
|
|
1465
1484
|
});
|
|
1466
|
-
function
|
|
1467
|
-
return R(
|
|
1485
|
+
function Tt() {
|
|
1486
|
+
return R(wt);
|
|
1468
1487
|
}
|
|
1469
1488
|
//#endregion
|
|
1470
1489
|
//#region src/utils/api-url.ts
|
|
1471
|
-
function
|
|
1490
|
+
function Et() {
|
|
1472
1491
|
if (c()) {
|
|
1473
1492
|
let e = [
|
|
1474
1493
|
document.currentScript,
|
|
@@ -1483,7 +1502,7 @@ function Tt() {
|
|
|
1483
1502
|
}
|
|
1484
1503
|
//#endregion
|
|
1485
1504
|
//#region src/utils/search-params.ts
|
|
1486
|
-
function
|
|
1505
|
+
function Dt() {
|
|
1487
1506
|
if (!s()) return {};
|
|
1488
1507
|
let e = new URLSearchParams(window.location.search), t = {}, n = /* @__PURE__ */ new Set();
|
|
1489
1508
|
for (let [t] of e.entries()) t.startsWith("picked-") && n.add(t);
|
|
@@ -1501,13 +1520,13 @@ function Et() {
|
|
|
1501
1520
|
}
|
|
1502
1521
|
//#endregion
|
|
1503
1522
|
//#region src/entities/session/session.ts
|
|
1504
|
-
var
|
|
1505
|
-
function
|
|
1523
|
+
var Ot = O("session", "global");
|
|
1524
|
+
function kt() {
|
|
1506
1525
|
return p() ? crypto.randomUUID() : `${Date.now().toString(36)}-${Math.random().toString(36).substring(2, 15)}-${Math.random().toString(36).substring(2, 15)}-${Math.random().toString(36).substring(2, 15)}`;
|
|
1507
1526
|
}
|
|
1508
|
-
function
|
|
1527
|
+
function At() {
|
|
1509
1528
|
if (!m()) return null;
|
|
1510
|
-
let e = E.get(
|
|
1529
|
+
let e = E.get(Ot);
|
|
1511
1530
|
if (!e.isSet()) return null;
|
|
1512
1531
|
try {
|
|
1513
1532
|
return e.json();
|
|
@@ -1515,8 +1534,8 @@ function kt() {
|
|
|
1515
1534
|
return null;
|
|
1516
1535
|
}
|
|
1517
1536
|
}
|
|
1518
|
-
var
|
|
1519
|
-
let e =
|
|
1537
|
+
var jt = L(() => {
|
|
1538
|
+
let e = At(), t = { id: e?.id ?? kt() };
|
|
1520
1539
|
e?.isUser !== void 0 && (t.isUser = e.isUser), e?.identifiers && Object.keys(e.identifiers).length > 0 && (t.identifiers = e.identifiers);
|
|
1521
1540
|
let n = F(t), r = j(n, {
|
|
1522
1541
|
setIsUser: (e, t) => ({
|
|
@@ -1545,7 +1564,7 @@ var At = L(() => {
|
|
|
1545
1564
|
source: n,
|
|
1546
1565
|
effect: (e) => {
|
|
1547
1566
|
if (m()) try {
|
|
1548
|
-
E.get(
|
|
1567
|
+
E.get(Ot).set(e);
|
|
1549
1568
|
} catch {}
|
|
1550
1569
|
}
|
|
1551
1570
|
})
|
|
@@ -1556,27 +1575,27 @@ var At = L(() => {
|
|
|
1556
1575
|
removeIdentifier: r.removeIdentifier
|
|
1557
1576
|
};
|
|
1558
1577
|
});
|
|
1559
|
-
function
|
|
1560
|
-
return R(
|
|
1578
|
+
function Mt() {
|
|
1579
|
+
return R(jt, void 0);
|
|
1561
1580
|
}
|
|
1562
1581
|
//#endregion
|
|
1563
1582
|
//#region src/utils/picked-config.ts
|
|
1564
|
-
function Mt() {
|
|
1565
|
-
if (s()) return globalThis.window.pickedConfig;
|
|
1566
|
-
}
|
|
1567
1583
|
function Nt() {
|
|
1568
|
-
if (s()) return
|
|
1584
|
+
if (s()) return globalThis.window.pickedConfig;
|
|
1569
1585
|
}
|
|
1570
1586
|
function Pt() {
|
|
1587
|
+
if (s()) return Nt()?.projectId;
|
|
1588
|
+
}
|
|
1589
|
+
function Ft() {
|
|
1571
1590
|
if (!c()) return;
|
|
1572
1591
|
let e = document.getElementById("picked_script") || document.querySelector("script#picked") || document.getElementById("cvly");
|
|
1573
1592
|
if (e) return e.dataset.projectid || e.getAttribute("project-id") || void 0;
|
|
1574
1593
|
}
|
|
1575
|
-
function
|
|
1594
|
+
function It(e) {
|
|
1576
1595
|
if (e.projectId) return e.projectId;
|
|
1577
|
-
let t =
|
|
1596
|
+
let t = Pt();
|
|
1578
1597
|
if (t) return t;
|
|
1579
|
-
let n =
|
|
1598
|
+
let n = Ft();
|
|
1580
1599
|
if (n) return n;
|
|
1581
1600
|
throw Error("projectId is required. You can provide it via one of:\n (1) createClient({ projectId }) options;\n (2) window.pickedConfig = { projectId };\n (3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes a data-projectid (or project-id) attribute.");
|
|
1582
1601
|
}
|
|
@@ -1585,7 +1604,7 @@ function Ft(e) {
|
|
|
1585
1604
|
function Z(e) {
|
|
1586
1605
|
return e == null || e === "" || Number.isNaN(e);
|
|
1587
1606
|
}
|
|
1588
|
-
var
|
|
1607
|
+
var Lt = {
|
|
1589
1608
|
default: (e, t) => Z(e) ? String(t ?? "") : String(e),
|
|
1590
1609
|
append: (e, t) => t && !Z(e) ? `${e} ${t}` : e,
|
|
1591
1610
|
prepend: (e, t) => t && !Z(e) ? `${t} ${e}` : e,
|
|
@@ -1606,24 +1625,24 @@ var It = {
|
|
|
1606
1625
|
return e instanceof Set ? t.format(Array.from(e).map(String)) : e;
|
|
1607
1626
|
}
|
|
1608
1627
|
};
|
|
1609
|
-
function
|
|
1628
|
+
function Rt(e) {
|
|
1610
1629
|
return typeof e == "object" && !!e;
|
|
1611
1630
|
}
|
|
1612
|
-
function
|
|
1631
|
+
function zt(e, t) {
|
|
1613
1632
|
let n = t;
|
|
1614
|
-
for (let t of e.split(".")) if (
|
|
1633
|
+
for (let t of e.split(".")) if (Rt(n) && t in n) n = n[t];
|
|
1615
1634
|
else return;
|
|
1616
1635
|
return typeof n == "function" ? n() : n;
|
|
1617
1636
|
}
|
|
1618
|
-
function
|
|
1619
|
-
let n = e.split("|").map((e) => e.trim()), r =
|
|
1637
|
+
function Bt(e, t) {
|
|
1638
|
+
let n = e.split("|").map((e) => e.trim()), r = zt(n.shift() ?? "", t);
|
|
1620
1639
|
for (let e of n) {
|
|
1621
|
-
let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o =
|
|
1640
|
+
let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = Lt[i];
|
|
1622
1641
|
o && (r = o(r, a));
|
|
1623
1642
|
}
|
|
1624
1643
|
return Z(r) ? "" : typeof r == "object" ? JSON.stringify(r) : String(r);
|
|
1625
1644
|
}
|
|
1626
|
-
function
|
|
1645
|
+
function Vt(e, t) {
|
|
1627
1646
|
let n = "", r = 0;
|
|
1628
1647
|
for (; r < e.length;) if (e[r] === "{" && e[r + 1] === "{") {
|
|
1629
1648
|
r += 2;
|
|
@@ -1635,19 +1654,19 @@ function Bt(e, t) {
|
|
|
1635
1654
|
}
|
|
1636
1655
|
i += e[r++];
|
|
1637
1656
|
}
|
|
1638
|
-
n +=
|
|
1657
|
+
n += Bt(i.trim(), t);
|
|
1639
1658
|
} else n += e[r++];
|
|
1640
1659
|
return n;
|
|
1641
1660
|
}
|
|
1642
1661
|
//#endregion
|
|
1643
1662
|
//#region src/utils/preview-session.ts
|
|
1644
1663
|
var Q = "preview-token";
|
|
1645
|
-
function
|
|
1646
|
-
return !s() || !h() ? !1 : !!
|
|
1664
|
+
function Ht() {
|
|
1665
|
+
return !s() || !h() ? !1 : !!Dt()[Q]?.[0];
|
|
1647
1666
|
}
|
|
1648
1667
|
//#endregion
|
|
1649
1668
|
//#region src/picked.ts
|
|
1650
|
-
var
|
|
1669
|
+
var Ut = class {
|
|
1651
1670
|
static logger = r;
|
|
1652
1671
|
options;
|
|
1653
1672
|
dataSource = null;
|
|
@@ -1660,55 +1679,55 @@ var Ht = class {
|
|
|
1660
1679
|
apiUrl;
|
|
1661
1680
|
dashboardUrl;
|
|
1662
1681
|
documentationSiteUrl;
|
|
1663
|
-
session =
|
|
1664
|
-
searchParams =
|
|
1665
|
-
history =
|
|
1682
|
+
session = Mt();
|
|
1683
|
+
searchParams = Dt();
|
|
1684
|
+
history = Ye();
|
|
1666
1685
|
components = ve({ client: this });
|
|
1667
1686
|
experienceInstances = S({ client: this });
|
|
1668
1687
|
experiences = ue({ client: this });
|
|
1669
|
-
frameworks =
|
|
1670
|
-
predicates =
|
|
1671
|
-
features =
|
|
1672
|
-
conditions =
|
|
1673
|
-
fields =
|
|
1674
|
-
responses =
|
|
1675
|
-
steps =
|
|
1676
|
-
contents =
|
|
1677
|
-
actions =
|
|
1688
|
+
frameworks = Se({ client: this });
|
|
1689
|
+
predicates = Ve({ client: this });
|
|
1690
|
+
features = Ge({ client: this });
|
|
1691
|
+
conditions = Tt();
|
|
1692
|
+
fields = et();
|
|
1693
|
+
responses = St({ client: this });
|
|
1694
|
+
steps = rt();
|
|
1695
|
+
contents = st();
|
|
1696
|
+
actions = dt({ client: this });
|
|
1678
1697
|
conditionResults = C();
|
|
1679
|
-
stateSnapshotStore =
|
|
1680
|
-
evaluateRuleLogicFx =
|
|
1698
|
+
stateSnapshotStore = Te({ client: this });
|
|
1699
|
+
evaluateRuleLogicFx = Ne({ client: this });
|
|
1681
1700
|
start;
|
|
1682
1701
|
readyStore;
|
|
1683
1702
|
preconditionPassedStore;
|
|
1684
1703
|
conditionPassedStore;
|
|
1685
1704
|
lifecycleStageStore;
|
|
1686
|
-
lifecycle =
|
|
1705
|
+
lifecycle = Re({ client: this });
|
|
1687
1706
|
renderStringFx = k({
|
|
1688
1707
|
source: this.responses.listStore,
|
|
1689
1708
|
effect: (e, { template: t, context: n }) => {
|
|
1690
1709
|
let r = {};
|
|
1691
1710
|
for (let t of e) r[t.fieldKey] = t.value;
|
|
1692
|
-
return
|
|
1711
|
+
return Vt(t, {
|
|
1693
1712
|
...n,
|
|
1694
1713
|
responses: r
|
|
1695
1714
|
});
|
|
1696
1715
|
}
|
|
1697
1716
|
});
|
|
1698
1717
|
constructor(e) {
|
|
1699
|
-
this.events =
|
|
1718
|
+
this.events = Ze(this.eventBus), this.projectId = It(e), this.options = Object.freeze(e), this.apiUrl = e.apiUrl || Et(), this.dashboardUrl = e.dashboardUrl ?? "https://dashboard.picked.app", this.documentationSiteUrl = e.documentationSiteUrl ?? "https://docs.picked.app", this.start = this.lifecycle.start, this.readyStore = this.lifecycle.readyStore, this.preconditionPassedStore = this.lifecycle.preconditionPassedStore, this.conditionPassedStore = this.lifecycle.conditionPassedStore, this.lifecycleStageStore = this.lifecycle.lifecycleStageStore, this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.setupComponents(), this.lifecycle.setPrecondition(e.precondition), this.lifecycle.setCondition(e.condition), this.eventBus({
|
|
1700
1719
|
type: "load",
|
|
1701
1720
|
version: ne()
|
|
1702
1721
|
}), this.maybeStartPreviewChannel();
|
|
1703
1722
|
}
|
|
1704
1723
|
maybeStartPreviewChannel() {
|
|
1705
|
-
|
|
1724
|
+
Ht() && import("../preview-channel-DW9J8t4B.js").then((e) => e.initPreviewChannel(this)).catch(() => void 0);
|
|
1706
1725
|
}
|
|
1707
1726
|
registerFramework = (e) => {
|
|
1708
|
-
|
|
1727
|
+
Ce(e, this.frameworks);
|
|
1709
1728
|
};
|
|
1710
1729
|
registerComponent = (e, t) => {
|
|
1711
|
-
|
|
1730
|
+
ye(e, t, this.components);
|
|
1712
1731
|
};
|
|
1713
1732
|
registerPlugin = (e) => {
|
|
1714
1733
|
pe(this, e, this.plugins);
|
|
@@ -1716,10 +1735,10 @@ var Ht = class {
|
|
|
1716
1735
|
t?.onStart && this.lifecycle.registerPluginStartHook(t.onStart);
|
|
1717
1736
|
};
|
|
1718
1737
|
registerFeature = (e, t) => {
|
|
1719
|
-
|
|
1738
|
+
Ke(e, t, this.features);
|
|
1720
1739
|
};
|
|
1721
1740
|
registerPredicate = (e, t) => {
|
|
1722
|
-
|
|
1741
|
+
He(e, t, this.predicates);
|
|
1723
1742
|
};
|
|
1724
1743
|
registerCondition = (e) => {
|
|
1725
1744
|
this.conditions.register(e);
|
|
@@ -1728,19 +1747,19 @@ var Ht = class {
|
|
|
1728
1747
|
this.fields.register(e);
|
|
1729
1748
|
};
|
|
1730
1749
|
registerStep = (e) => {
|
|
1731
|
-
|
|
1750
|
+
it(e, this.steps);
|
|
1732
1751
|
};
|
|
1733
1752
|
registerContent = (e) => {
|
|
1734
|
-
|
|
1753
|
+
ct(e, this.contents);
|
|
1735
1754
|
};
|
|
1736
1755
|
patchContent = (e, t) => {
|
|
1737
1756
|
this.contents.patch(e, t);
|
|
1738
1757
|
};
|
|
1739
1758
|
registerAction = (e, t) => {
|
|
1740
|
-
|
|
1759
|
+
ft(e, t, this.actions);
|
|
1741
1760
|
};
|
|
1742
1761
|
registerExperience = (e) => {
|
|
1743
|
-
e.component &&
|
|
1762
|
+
e.component && ye(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
|
|
1744
1763
|
};
|
|
1745
1764
|
launchExperienceById = async (e, t) => {
|
|
1746
1765
|
this.experiences.launch({
|
|
@@ -1822,7 +1841,7 @@ var Ht = class {
|
|
|
1822
1841
|
});
|
|
1823
1842
|
}
|
|
1824
1843
|
getPluginConfig = (e) => this.plugins[e] ?? {};
|
|
1825
|
-
},
|
|
1844
|
+
}, Wt = "application/picked-javascript", Gt = "application/picked-module", Kt = "data-picked-hydrated";
|
|
1826
1845
|
async function $(e) {
|
|
1827
1846
|
if (!("document" in globalThis)) return;
|
|
1828
1847
|
let t = "application/picked-module", n = "data-picked-hydrated";
|
|
@@ -1852,30 +1871,30 @@ async function $(e) {
|
|
|
1852
1871
|
a && await a;
|
|
1853
1872
|
}
|
|
1854
1873
|
}
|
|
1855
|
-
function
|
|
1874
|
+
function qt() {
|
|
1856
1875
|
return `<script>(${$.toString()})(document)<\/script>`;
|
|
1857
1876
|
}
|
|
1858
1877
|
//#endregion
|
|
1859
1878
|
//#region src/utils/html-asset-value.ts
|
|
1860
|
-
function
|
|
1879
|
+
function Jt(e) {
|
|
1861
1880
|
return typeof e == "object" && !!e && "id" in e && typeof e.id == "string" && "content" in e && (typeof e.content == "string" || e.content === null);
|
|
1862
1881
|
}
|
|
1863
1882
|
//#endregion
|
|
1864
1883
|
//#region src/entities/component/lazyComponent.ts
|
|
1865
|
-
function
|
|
1884
|
+
function Yt(e) {
|
|
1866
1885
|
return {
|
|
1867
1886
|
$$type: "lazy-component",
|
|
1868
1887
|
load: e
|
|
1869
1888
|
};
|
|
1870
1889
|
}
|
|
1871
|
-
function
|
|
1890
|
+
function Xt(e) {
|
|
1872
1891
|
return typeof e == "object" && !!e && "$$type" in e && e.$$type === "lazy-component";
|
|
1873
1892
|
}
|
|
1874
1893
|
//#endregion
|
|
1875
1894
|
//#region src/exports.ts
|
|
1876
|
-
var
|
|
1877
|
-
let t = new
|
|
1895
|
+
var Zt = (e) => {
|
|
1896
|
+
let t = new Ut(e);
|
|
1878
1897
|
return u(t), t;
|
|
1879
1898
|
};
|
|
1880
1899
|
//#endregion
|
|
1881
|
-
export {
|
|
1900
|
+
export { Kt as PICKED_HYDRATED_ATTR, Gt as PICKED_MODULE_SCRIPT_TYPE, Wt as PICKED_SCRIPT_TYPE, Q as PREVIEW_TOKEN_PARAM, Ut as Picked, qt as buildRehydrateBootstrap, Zt as createClient, fe as createPluginEffect, O as createStorageKey, n as evaluateRuleLogic, Nt as getPickedConfig, Jt as isHtmlAssetValue, h as isInsideIframe, Xt as isLazyLoader, _ as isPickedRoot, Ht as isPreviewSession, Yt as lazyComponent, E as localStore, oe as onInertScriptSubtrees, $ as rehydrateScripts, ie as reportInertScriptSubtrees, ae as resetInertScriptReport, D as sessionStore, T as subscribe, d as supportsCookies, p as supportsCryptoRandomUUID, c as supportsDocument, i as supportsHistory, f as supportsIntersectionObserver, m as supportsLocalStorage, a as supportsLocation, l as supportsSessionStorage, g as supportsShadowRoot, o as supportsWebComponents, s as supportsWindow };
|