@picked/client 0.0.84 → 0.0.85-next.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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/{api-Dpa-71Qe.js → api-BEHVkTp0.js} +1 -1
- package/dist/{api-Dauhcq05.cjs → api-Db2hTYjh.cjs} +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/logic-engine.js +1 -0
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/docs/how-to/authenticate-the-cli.md +4 -0
- package/dist/docs/how-to/authenticate-with-a-password.md +11 -3
- package/dist/docs/how-to/call-an-external-api-from-a-workflow.md +68 -0
- package/dist/docs/how-to/connect-the-mcp-server.md +8 -0
- package/dist/docs/how-to/set-up-mfa.md +58 -19
- package/dist/docs/reference/dashboard/external-apis.md +65 -0
- package/dist/docs/reference/dashboard/lead-search.md +149 -0
- package/dist/docs/reference/dashboard/workflow-runs.md +79 -0
- package/dist/docs/reference/glossary.md +10 -0
- package/dist/docs/reference/management-api/authentication.md +15 -8
- package/dist/docs/reference/management-api/authorization-and-scopes.md +5 -1
- package/dist/docs/reference/management-api/error-handling.md +2 -3
- package/dist/docs/reference/sdk/analytics-events.md +2 -3
- package/dist/docs/tutorials/first-api-call.md +13 -6
- package/dist/esm/index.js +283 -476
- package/dist/esm/logic-engine.js +208 -0
- package/dist/esm/plugins/dynamic-experiences/index.js +2 -2
- package/dist/esm/server/index.js +2 -2
- package/dist/{plugin-B8tQck_k.js → plugin--rtHXtp_.js} +80 -45
- package/dist/plugin-BLfvCUPb.cjs +1 -0
- package/dist/{preview-unavailable-CBjPwMqm.cjs → preview-unavailable-B35D3P_1.cjs} +1 -1
- package/dist/{preview-unavailable-DrO9PFzS.js → preview-unavailable-C0TI4Zi9.js} +1 -1
- package/dist/{provider-DFJQEjV6.cjs → provider-BuCY_9pW.cjs} +1 -1
- package/dist/{provider-DZBClIc7.js → provider-D9VMzcWH.js} +1 -1
- package/dist/types/logic-engine.d.ts +9 -0
- package/dist/types/logic-engine.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
- package/package.json +18 -7
- package/dist/plugin-BmjrsiJ2.cjs +0 -1
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
//#region src/logic-engine.ts
|
|
2
|
+
function e(e) {
|
|
3
|
+
return typeof e == "number" && !isNaN(e);
|
|
4
|
+
}
|
|
5
|
+
function t(e) {
|
|
6
|
+
return typeof e == "string";
|
|
7
|
+
}
|
|
8
|
+
function n(e) {
|
|
9
|
+
return Array.isArray(e);
|
|
10
|
+
}
|
|
11
|
+
function r(e) {
|
|
12
|
+
return e instanceof Promise;
|
|
13
|
+
}
|
|
14
|
+
function i(e) {
|
|
15
|
+
return typeof e == "object" && !!e && !Array.isArray(e) && Object.keys(e).length === 1;
|
|
16
|
+
}
|
|
17
|
+
function a(t) {
|
|
18
|
+
if (e(t)) return t;
|
|
19
|
+
let n = parseFloat(`${t}`);
|
|
20
|
+
return isNaN(n) ? 0 : n;
|
|
21
|
+
}
|
|
22
|
+
function o(e) {
|
|
23
|
+
return `${e}`;
|
|
24
|
+
}
|
|
25
|
+
var s = {
|
|
26
|
+
"==": (e, t) => e == t,
|
|
27
|
+
"===": (e, t) => e === t,
|
|
28
|
+
"!=": (e, t) => e != t,
|
|
29
|
+
"!==": (e, t) => e !== t,
|
|
30
|
+
">": (e, t) => a(e) > a(t),
|
|
31
|
+
">=": (e, t) => a(e) >= a(t),
|
|
32
|
+
"<": (e, t, n) => {
|
|
33
|
+
let r = a(e), i = a(t);
|
|
34
|
+
if (n === void 0) return r < i;
|
|
35
|
+
let o = a(n);
|
|
36
|
+
return r < i && i < o;
|
|
37
|
+
},
|
|
38
|
+
"<=": (e, t, n) => {
|
|
39
|
+
let r = a(e), i = a(t);
|
|
40
|
+
if (n === void 0) return r <= i;
|
|
41
|
+
let o = a(n);
|
|
42
|
+
return r <= i && i <= o;
|
|
43
|
+
},
|
|
44
|
+
"!!": async (e) => await u(e),
|
|
45
|
+
"!": async (e) => !await u(e),
|
|
46
|
+
"%": (e, t) => a(e) % a(t),
|
|
47
|
+
log: (e) => (console.log(e), e),
|
|
48
|
+
in: (e, r) => r ? t(r) ? r.indexOf(o(e)) !== -1 : n(r) ? r.includes(e) : !1 : !1,
|
|
49
|
+
cat: (...e) => e.map(o).join(""),
|
|
50
|
+
substr: (e, t, n) => {
|
|
51
|
+
let r = o(e), i = a(t);
|
|
52
|
+
if (n === void 0) return r.substr(i);
|
|
53
|
+
let s = a(n);
|
|
54
|
+
if (s < 0) {
|
|
55
|
+
let e = r.substr(i);
|
|
56
|
+
return e.substr(0, e.length + s);
|
|
57
|
+
}
|
|
58
|
+
return r.substr(i, s);
|
|
59
|
+
},
|
|
60
|
+
"+": (...e) => e.reduce((e, t) => a(e) + a(t), 0),
|
|
61
|
+
"*": (...e) => e.reduce((e, t) => a(e) * a(t), 1),
|
|
62
|
+
"-": (e, t) => {
|
|
63
|
+
let n = a(e);
|
|
64
|
+
return t === void 0 ? -n : n - a(t);
|
|
65
|
+
},
|
|
66
|
+
"/": (e, t) => a(e) / a(t),
|
|
67
|
+
min: (...e) => Math.min(...e.map(a)),
|
|
68
|
+
max: (...e) => Math.max(...e.map(a)),
|
|
69
|
+
merge: (...e) => e.reduce((e, t) => n(t) ? e.concat(t) : e.concat([t]), []),
|
|
70
|
+
var(e, t) {
|
|
71
|
+
let n = arguments.length > 1 ? t : null;
|
|
72
|
+
if (e === "" || e === "." || e == null) return this;
|
|
73
|
+
if (typeof e == "number" && Array.isArray(this)) return e >= 0 && e < this.length ? this[e] : n;
|
|
74
|
+
let r = o(e);
|
|
75
|
+
if (r === "" || r === ".") return this;
|
|
76
|
+
let i = r.split("."), a = this;
|
|
77
|
+
for (let e of i) {
|
|
78
|
+
if (a == null) return n;
|
|
79
|
+
if (Array.isArray(a)) {
|
|
80
|
+
let t = parseInt(e, 10);
|
|
81
|
+
a = isNaN(t) ? a[e] : a[t];
|
|
82
|
+
} else a = a[e];
|
|
83
|
+
}
|
|
84
|
+
return a === void 0 ? n : a;
|
|
85
|
+
},
|
|
86
|
+
async missing(...e) {
|
|
87
|
+
let t = n(e[0]) ? e[0] : e, r = [];
|
|
88
|
+
for (let e of t) {
|
|
89
|
+
let t = await l({ var: e }, this);
|
|
90
|
+
(t === null || t === "") && r.push(`${e}`);
|
|
91
|
+
}
|
|
92
|
+
return r;
|
|
93
|
+
},
|
|
94
|
+
async missing_some(e, r) {
|
|
95
|
+
let i = await l({ missing: r }, this);
|
|
96
|
+
if (!n(i) || !n(r)) return [];
|
|
97
|
+
let o = i.filter(t);
|
|
98
|
+
return r.filter(t).length - o.length >= a(e) ? [] : o;
|
|
99
|
+
},
|
|
100
|
+
invoke(...e) {
|
|
101
|
+
let [t, ...n] = e;
|
|
102
|
+
return typeof t == "function" ? Reflect.apply(t, null, n) : null;
|
|
103
|
+
},
|
|
104
|
+
startsWith: (e, n) => t(e) && t(n) && e.startsWith(n),
|
|
105
|
+
endsWith: (e, n) => t(e) && t(n) && e.endsWith(n),
|
|
106
|
+
regexp_matches(e, r) {
|
|
107
|
+
let i = e, a = "";
|
|
108
|
+
if (n(e)) {
|
|
109
|
+
let [t, n] = e;
|
|
110
|
+
i = t, a = n;
|
|
111
|
+
}
|
|
112
|
+
return !t(i) || !t(a) ? !1 : new RegExp(i, a).test(o(r));
|
|
113
|
+
},
|
|
114
|
+
throw(e) {
|
|
115
|
+
throw Error(o(e));
|
|
116
|
+
}
|
|
117
|
+
}, c = [
|
|
118
|
+
"?:",
|
|
119
|
+
"all",
|
|
120
|
+
"and",
|
|
121
|
+
"catch",
|
|
122
|
+
"filter",
|
|
123
|
+
"if",
|
|
124
|
+
"map",
|
|
125
|
+
"none",
|
|
126
|
+
"or",
|
|
127
|
+
"reduce",
|
|
128
|
+
"some",
|
|
129
|
+
...Object.keys(s)
|
|
130
|
+
];
|
|
131
|
+
async function l(e, t) {
|
|
132
|
+
if (!e) return e;
|
|
133
|
+
if (r(e)) return l(await e, t);
|
|
134
|
+
if (n(e)) return Promise.all(e.map((e) => l(e, t)));
|
|
135
|
+
if (!i(e)) return e;
|
|
136
|
+
let a = d(e), o = a ? e[a] ?? [] : [];
|
|
137
|
+
switch (n(o) || (o = [o]), a) {
|
|
138
|
+
case "if":
|
|
139
|
+
case "?:":
|
|
140
|
+
for (let e = 0; e < o.length - 1; e += 2) if (await u(await l(o[e], t))) return l(o[e + 1], t);
|
|
141
|
+
return o.length % 2 == 1 ? l(o[o.length - 1], t) : null;
|
|
142
|
+
case "and": {
|
|
143
|
+
let e = null;
|
|
144
|
+
for (let n of o) if (e = await l(n, t), !await u(e)) return e;
|
|
145
|
+
return e;
|
|
146
|
+
}
|
|
147
|
+
case "or": {
|
|
148
|
+
let e = null;
|
|
149
|
+
for (let n of o) if (e = await l(n, t), await u(e)) return e;
|
|
150
|
+
return e;
|
|
151
|
+
}
|
|
152
|
+
case "map": {
|
|
153
|
+
let e = await l(o[0], t);
|
|
154
|
+
return n(e) ? await Promise.all(e.map((e) => l(o[1], e))) : [];
|
|
155
|
+
}
|
|
156
|
+
case "filter": {
|
|
157
|
+
let e = await l(o[0], t);
|
|
158
|
+
return n(e) ? (await Promise.all(e.map(async (e) => ({
|
|
159
|
+
item: e,
|
|
160
|
+
shouldInclude: await u(await l(o[1], e))
|
|
161
|
+
})))).filter(({ shouldInclude: e }) => e).map(({ item: e }) => e) : [];
|
|
162
|
+
}
|
|
163
|
+
case "reduce": {
|
|
164
|
+
let e = await l(o[0], t);
|
|
165
|
+
if (!n(e)) return o.length > 2 ? await l(o[2], t) : null;
|
|
166
|
+
let r = o[1], i = o.length > 2 ? await l(o[2], t) : null;
|
|
167
|
+
for (let t of e) i = await l(r, {
|
|
168
|
+
current: t,
|
|
169
|
+
accumulator: i
|
|
170
|
+
});
|
|
171
|
+
return i;
|
|
172
|
+
}
|
|
173
|
+
case "all": {
|
|
174
|
+
let e = await l(o[0], t);
|
|
175
|
+
if (!n(e) || e.length === 0) return !1;
|
|
176
|
+
for (let t of e) if (!await u(await l(o[1], t))) return !1;
|
|
177
|
+
return !0;
|
|
178
|
+
}
|
|
179
|
+
case "some": {
|
|
180
|
+
let e = await l(o[0], t);
|
|
181
|
+
if (!n(e)) return !1;
|
|
182
|
+
for (let t of e) if (await u(await l(o[1], t))) return !0;
|
|
183
|
+
return !1;
|
|
184
|
+
}
|
|
185
|
+
case "none": {
|
|
186
|
+
let e = await l(o[0], t);
|
|
187
|
+
if (!n(e)) return !0;
|
|
188
|
+
for (let t of e) if (await u(await l(o[1], t))) return !1;
|
|
189
|
+
return !0;
|
|
190
|
+
}
|
|
191
|
+
case "catch": try {
|
|
192
|
+
return await l(o[0], t);
|
|
193
|
+
} catch (e) {
|
|
194
|
+
return i(e) ? await l(e, t) : o[1] ? await l(o[1], e) : e instanceof Error ? e.message : e;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
let c = await Promise.all(o.map((e) => l(e, t))), f = a ? s[a] : void 0;
|
|
198
|
+
if (!f) throw Error(`Unrecognized operation ${a}`);
|
|
199
|
+
return f.apply(t, c);
|
|
200
|
+
}
|
|
201
|
+
async function u(e) {
|
|
202
|
+
return r(e) ? u(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
|
|
203
|
+
}
|
|
204
|
+
function d(e) {
|
|
205
|
+
return Object.keys(e)[0];
|
|
206
|
+
}
|
|
207
|
+
//#endregion
|
|
208
|
+
export { c as OPERATORS, l as apply };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as e } from "../../../plugin
|
|
2
|
-
import { n as t, t as n } from "../../../api-
|
|
1
|
+
import { t as e } from "../../../plugin--rtHXtp_.js";
|
|
2
|
+
import { n as t, t as n } from "../../../api-BEHVkTp0.js";
|
|
3
3
|
import { n as r } from "../../../registry-CXZv0uLg.js";
|
|
4
4
|
import { createClientHeaders as i, fetchSchema as a } from "@picked/delivery-api-client";
|
|
5
5
|
export { i as createClientHeaders, e as dynamicExperiencesPlugin, n as fetchExperienceContent, t as fetchProject, a as fetchSchema, r as registerPickedBundle };
|
package/dist/esm/server/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as e, c as t, d as n, i as r, o as i, s as a, t as o } from "../../experience-instance-VZQBpVEW.js";
|
|
2
|
-
import { t as s } from "../../preview-unavailable-
|
|
3
|
-
import { n as c } from "../../plugin
|
|
2
|
+
import { t as s } from "../../preview-unavailable-C0TI4Zi9.js";
|
|
3
|
+
import { n as c } from "../../plugin--rtHXtp_.js";
|
|
4
4
|
import { attach as l, createEffect as u, createEvent as d, createStore as f, sample as p } from "effector";
|
|
5
5
|
//#region src/server/serialize.ts
|
|
6
6
|
var m = 1e4;
|
|
@@ -1,44 +1,45 @@
|
|
|
1
1
|
import "./logger-DMN6TxJJ.js";
|
|
2
|
-
import { c as e, i as t, n, t as r } from "./preview-unavailable-
|
|
3
|
-
import "./api-
|
|
2
|
+
import { c as e, i as t, n, t as r } from "./preview-unavailable-C0TI4Zi9.js";
|
|
3
|
+
import "./api-BEHVkTp0.js";
|
|
4
4
|
import { attach as i } from "effector";
|
|
5
|
+
import { runAction as a } from "@picked/delivery-api-client";
|
|
5
6
|
//#region src/plugins/dynamic-experiences/hash.ts
|
|
6
|
-
function
|
|
7
|
+
function o(e) {
|
|
7
8
|
let t = 2166136261;
|
|
8
9
|
for (let n of e) t ^= n.codePointAt(0) ?? 0, t = Math.imul(t, 16777619);
|
|
9
10
|
return t >>> 0;
|
|
10
11
|
}
|
|
11
|
-
function
|
|
12
|
+
function s(e) {
|
|
12
13
|
let t = e;
|
|
13
14
|
return t ^= t >>> 16, t = Math.imul(t, 2246822507), t ^= t >>> 13, t = Math.imul(t, 3266489909), t ^= t >>> 16, t >>> 0;
|
|
14
15
|
}
|
|
15
|
-
function s(e, t) {
|
|
16
|
-
return o(a(`${e}:${t}`)) % 100;
|
|
17
|
-
}
|
|
18
16
|
function c(e, t) {
|
|
19
|
-
return t
|
|
17
|
+
return s(o(`${e}:${t}`)) % 100;
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return (o(a(`${e}:${t}:${n}`)) + .5) / l;
|
|
19
|
+
function l(e, t) {
|
|
20
|
+
return t <= 0 ? !1 : t >= 100 || e < t;
|
|
24
21
|
}
|
|
22
|
+
var u = 4294967296;
|
|
25
23
|
function d(e, t, n) {
|
|
26
|
-
return n
|
|
24
|
+
return (s(o(`${e}:${t}:${n}`)) + .5) / u;
|
|
27
25
|
}
|
|
28
26
|
function f(e, t, n) {
|
|
27
|
+
return n.weight <= 0 ? 0 : n.weight / -Math.log(d(e, t, n.key));
|
|
28
|
+
}
|
|
29
|
+
function p(e, t, n) {
|
|
29
30
|
let r = null, i = 0;
|
|
30
31
|
for (let a of n) {
|
|
31
|
-
let n =
|
|
32
|
+
let n = f(e, t, a);
|
|
32
33
|
n <= 0 || (n > i || n === i && r !== null && a.key < r.key) && (i = n, r = a);
|
|
33
34
|
}
|
|
34
35
|
return r;
|
|
35
36
|
}
|
|
36
37
|
//#endregion
|
|
37
38
|
//#region src/plugins/dynamic-experiences/plugin.ts
|
|
38
|
-
function
|
|
39
|
+
function m(e, t) {
|
|
39
40
|
if (Array.isArray(t.conditions)) for (let n of t.conditions) e.registerCondition(n);
|
|
40
41
|
}
|
|
41
|
-
function
|
|
42
|
+
function h(e, t) {
|
|
42
43
|
e.registerExperience({
|
|
43
44
|
id: t.id,
|
|
44
45
|
key: t.key,
|
|
@@ -51,13 +52,13 @@ function m(e, t) {
|
|
|
51
52
|
componentName: t.componentName
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
|
-
function
|
|
55
|
+
function g(e) {
|
|
55
56
|
return typeof e != "object" || !e ? !1 : "id" in e && "key" in e && "type" in e && "name" in e;
|
|
56
57
|
}
|
|
57
|
-
function g(e, t) {
|
|
58
|
-
if (Array.isArray(t.fields)) for (let n of t.fields) h(n) && e.registerField(n);
|
|
59
|
-
}
|
|
60
58
|
function _(e, t) {
|
|
59
|
+
if (Array.isArray(t.fields)) for (let n of t.fields) g(n) && e.registerField(n);
|
|
60
|
+
}
|
|
61
|
+
function v(e, t) {
|
|
61
62
|
if (!Array.isArray(t.steps)) return;
|
|
62
63
|
let n = new Map(t.fields.map((e) => [e.id, e.key]));
|
|
63
64
|
for (let r of t.steps) {
|
|
@@ -84,33 +85,67 @@ function _(e, t) {
|
|
|
84
85
|
});
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
|
-
function
|
|
88
|
-
if (Array.isArray(t.experiences)) for (let n of t.experiences)
|
|
88
|
+
function y(e, t) {
|
|
89
|
+
if (Array.isArray(t.experiences)) for (let n of t.experiences) h(e, n);
|
|
89
90
|
}
|
|
90
|
-
function
|
|
91
|
-
|
|
91
|
+
function b(e, t, n) {
|
|
92
|
+
E(e, t, n.isPreview, n.sessionId), m(e, t), _(e, t), v(e, t), x(e, t), y(e, t);
|
|
92
93
|
}
|
|
93
|
-
function
|
|
94
|
+
function x(e, t) {
|
|
95
|
+
if (!Array.isArray(t.actions)) return;
|
|
96
|
+
let n = new Map(t.fields.map((e) => [e.id, e.key])), r = new Set(e.actions.listStore.getState().map((e) => e.key));
|
|
97
|
+
for (let i of t.actions) {
|
|
98
|
+
if (r.has(i.key)) {
|
|
99
|
+
`${i.key}`;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
let o = [];
|
|
103
|
+
for (let e of i.fieldIds ?? []) {
|
|
104
|
+
let t = n.get(e);
|
|
105
|
+
if (t === void 0) {
|
|
106
|
+
`${i.key}${e}`;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
o.push(t);
|
|
110
|
+
}
|
|
111
|
+
e.registerAction(i.key, async (n) => {
|
|
112
|
+
let r = {};
|
|
113
|
+
for (let e of o) {
|
|
114
|
+
let t = n.responses.find((t) => t.fieldKey === e);
|
|
115
|
+
t?.value !== void 0 && (r[e] = t.value);
|
|
116
|
+
}
|
|
117
|
+
let s = S(e);
|
|
118
|
+
return (await a(e.apiUrl, {
|
|
119
|
+
key: i.key,
|
|
120
|
+
projectId: e.projectId,
|
|
121
|
+
session: { id: e.session.store.getState().id },
|
|
122
|
+
responses: r,
|
|
123
|
+
versionId: t.versionId
|
|
124
|
+
}, s === void 0 ? void 0 : { previewToken: s })).actionRunId;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function S(e) {
|
|
94
129
|
let t = e.searchParams[n];
|
|
95
130
|
if (t && t.length > 0) return t[0];
|
|
96
131
|
}
|
|
97
|
-
function
|
|
132
|
+
function C(e, t) {
|
|
98
133
|
return e.getProjectConfig(t === void 0 ? void 0 : { previewToken: t }).catch((e) => e instanceof r ? e : null);
|
|
99
134
|
}
|
|
100
|
-
async function
|
|
101
|
-
let i =
|
|
135
|
+
async function w(e) {
|
|
136
|
+
let i = S(e), a = await C(e, i);
|
|
102
137
|
if (!(a instanceof r)) return {
|
|
103
138
|
config: a,
|
|
104
139
|
previewToken: i
|
|
105
140
|
};
|
|
106
141
|
t(e.searchParams, n), e.previewUnavailable = !0, `${a.message}`;
|
|
107
|
-
let o = await
|
|
142
|
+
let o = await C(e, void 0);
|
|
108
143
|
return {
|
|
109
144
|
config: o instanceof r ? null : o,
|
|
110
145
|
previewToken: void 0
|
|
111
146
|
};
|
|
112
147
|
}
|
|
113
|
-
function
|
|
148
|
+
function T(t) {
|
|
114
149
|
let n = /* @__PURE__ */ new Map(), r = t.searchParams.feature;
|
|
115
150
|
if (!r) return n;
|
|
116
151
|
for (let t of r) {
|
|
@@ -119,18 +154,18 @@ function C(t) {
|
|
|
119
154
|
}
|
|
120
155
|
return n;
|
|
121
156
|
}
|
|
122
|
-
function
|
|
123
|
-
let i =
|
|
157
|
+
function E(e, t, n, r) {
|
|
158
|
+
let i = T(e);
|
|
124
159
|
for (let a of t.features) {
|
|
125
160
|
let t = i.get(a.id);
|
|
126
161
|
if (t !== void 0) {
|
|
127
|
-
|
|
162
|
+
D(e, a, t);
|
|
128
163
|
continue;
|
|
129
164
|
}
|
|
130
|
-
|
|
165
|
+
O(e, a, n, r);
|
|
131
166
|
}
|
|
132
167
|
}
|
|
133
|
-
function
|
|
168
|
+
function D(e, t, n) {
|
|
134
169
|
e.registerFeature(t.id, {
|
|
135
170
|
key: `${n}`,
|
|
136
171
|
name: t.name,
|
|
@@ -142,7 +177,7 @@ function T(e, t, n) {
|
|
|
142
177
|
decide: () => n
|
|
143
178
|
});
|
|
144
179
|
}
|
|
145
|
-
function
|
|
180
|
+
function O(e, t, n, r) {
|
|
146
181
|
let i = t.id, a = t.variants;
|
|
147
182
|
e.registerFeature(i, {
|
|
148
183
|
key: `v${t.version}`,
|
|
@@ -152,17 +187,17 @@ function E(e, t, n, r) {
|
|
|
152
187
|
storage: n ? "session" : "local",
|
|
153
188
|
valueType: t.valueType,
|
|
154
189
|
variants: a,
|
|
155
|
-
decide: () => t.valueType === "text" ? !a || a.length === 0 ? (`${i}`, !1) :
|
|
190
|
+
decide: () => t.valueType === "text" ? !a || a.length === 0 ? (`${i}`, !1) : p(r, i, a)?.value ?? !1 : l(c(r, i), t.weight)
|
|
156
191
|
});
|
|
157
192
|
}
|
|
158
|
-
function
|
|
193
|
+
function k(e, t) {
|
|
159
194
|
for (let n of [...t.references ?? [], ...t.content]) e.registerContent({
|
|
160
195
|
id: n.id,
|
|
161
196
|
contentModelKey: n.contentModelKey,
|
|
162
197
|
data: n.data
|
|
163
198
|
});
|
|
164
199
|
}
|
|
165
|
-
function
|
|
200
|
+
function A(e, t) {
|
|
166
201
|
let n = /* @__PURE__ */ new Map();
|
|
167
202
|
return (r, i) => {
|
|
168
203
|
let a = n.get(r.id);
|
|
@@ -170,7 +205,7 @@ function O(e, t) {
|
|
|
170
205
|
let o = (async () => {
|
|
171
206
|
try {
|
|
172
207
|
let n = await t(r, i);
|
|
173
|
-
return n &&
|
|
208
|
+
return n && k(e, n), n;
|
|
174
209
|
} finally {
|
|
175
210
|
n.delete(r.id);
|
|
176
211
|
}
|
|
@@ -178,18 +213,18 @@ function O(e, t) {
|
|
|
178
213
|
return n.set(r.id, o), o;
|
|
179
214
|
};
|
|
180
215
|
}
|
|
181
|
-
function
|
|
216
|
+
function j(e, t) {
|
|
182
217
|
let n = new Set(t && Array.isArray(t.experiences) ? t.experiences.map((e) => e.id) : []);
|
|
183
218
|
return (t, r) => n.has(t.id) ? e(t, r) : Promise.resolve(null);
|
|
184
219
|
}
|
|
185
|
-
function
|
|
220
|
+
function M() {
|
|
186
221
|
return {
|
|
187
222
|
name: "dynamic-experiences",
|
|
188
223
|
setup: (e) => ({ onStart: i({
|
|
189
224
|
source: e.session.store.map((e) => e.id),
|
|
190
225
|
effect: async (t) => {
|
|
191
|
-
let { config: n, previewToken: r } = await
|
|
192
|
-
if (e.contentLoader =
|
|
226
|
+
let { config: n, previewToken: r } = await w(e), i = r !== void 0, a = r === void 0 ? void 0 : { previewToken: r };
|
|
227
|
+
if (e.contentLoader = A(e, j((t) => e.getExperienceContent(t, a), n)), !n) return;
|
|
193
228
|
let o = e.seededVersionId;
|
|
194
229
|
if (o !== null && o !== n.versionId) {
|
|
195
230
|
e.versionSkew = {
|
|
@@ -198,7 +233,7 @@ function A() {
|
|
|
198
233
|
}, `${n.versionId}${o}`;
|
|
199
234
|
return;
|
|
200
235
|
}
|
|
201
|
-
e.previewEmbedderOrigins = n.previewEmbedderOrigins ?? null,
|
|
236
|
+
e.previewEmbedderOrigins = n.previewEmbedderOrigins ?? null, b(e, n, {
|
|
202
237
|
isPreview: i,
|
|
203
238
|
sessionId: t
|
|
204
239
|
});
|
|
@@ -207,4 +242,4 @@ function A() {
|
|
|
207
242
|
};
|
|
208
243
|
}
|
|
209
244
|
//#endregion
|
|
210
|
-
export {
|
|
245
|
+
export { b as n, M as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require("./logger-CSTvAyyB.cjs");const e=require("./preview-unavailable-B35D3P_1.cjs");require("./api-Db2hTYjh.cjs");let t=require("effector"),n=require("@picked/delivery-api-client");function r(e){let t=2166136261;for(let n of e)t^=n.codePointAt(0)??0,t=Math.imul(t,16777619);return t>>>0}function i(e){let t=e;return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}function a(e,t){return i(r(`${e}:${t}`))%100}function o(e,t){return t<=0?!1:t>=100||e<t}var s=4294967296;function c(e,t,n){return(i(r(`${e}:${t}:${n}`))+.5)/s}function l(e,t,n){return n.weight<=0?0:n.weight/-Math.log(c(e,t,n.key))}function u(e,t,n){let r=null,i=0;for(let a of n){let n=l(e,t,a);n<=0||(n>i||n===i&&r!==null&&a.key<r.key)&&(i=n,r=a)}return r}function d(e,t){if(Array.isArray(t.conditions))for(let n of t.conditions)e.registerCondition(n)}function f(e,t){e.registerExperience({id:t.id,key:t.key,name:t.name,targets:t.targets,nodes:t.nodes,edges:t.edges,condition:t.condition,initializeOpen:t.initializeOpen,componentName:t.componentName})}function p(e){return typeof e!=`object`||!e?!1:`id`in e&&`key`in e&&`type`in e&&`name`in e}function m(e,t){if(Array.isArray(t.fields))for(let n of t.fields)p(n)&&e.registerField(n)}function h(e,t){if(!Array.isArray(t.steps))return;let n=new Map(t.fields.map(e=>[e.id,e.key]));for(let r of t.steps){let t=[];for(let e of r.fieldIds??[]){let i=n.get(e);if(i===void 0){`${r.key}${e}`;continue}t.push(i)}let i=r.layoutContentId?e.contents.getById(r.layoutContentId):null;e.registerStep({id:r.id,key:r.key,name:r.name,fieldKeys:t,layoutName:r.layoutName,...r.layoutContentId!==void 0&&{layoutContentId:r.layoutContentId,layoutContentStore:i}})}}function g(e,t){if(Array.isArray(t.experiences))for(let n of t.experiences)f(e,n)}function _(e,t,n){C(e,t,n.isPreview,n.sessionId),d(e,t),m(e,t),h(e,t),v(e,t),g(e,t)}function v(e,t){if(!Array.isArray(t.actions))return;let r=new Map(t.fields.map(e=>[e.id,e.key])),i=new Set(e.actions.listStore.getState().map(e=>e.key));for(let a of t.actions){if(i.has(a.key)){`${a.key}`;continue}let o=[];for(let e of a.fieldIds??[]){let t=r.get(e);if(t===void 0){`${a.key}${e}`;continue}o.push(t)}e.registerAction(a.key,async r=>{let i={};for(let e of o){let t=r.responses.find(t=>t.fieldKey===e);t?.value!==void 0&&(i[e]=t.value)}let s=y(e);return(await(0,n.runAction)(e.apiUrl,{key:a.key,projectId:e.projectId,session:{id:e.session.store.getState().id},responses:i,versionId:t.versionId},s===void 0?void 0:{previewToken:s})).actionRunId})}}function y(t){let n=t.searchParams[e.n];if(n&&n.length>0)return n[0]}function b(t,n){return t.getProjectConfig(n===void 0?void 0:{previewToken:n}).catch(t=>t instanceof e.t?t:null)}async function x(t){let n=y(t),r=await b(t,n);if(!(r instanceof e.t))return{config:r,previewToken:n};e.i(t.searchParams,e.n),t.previewUnavailable=!0,`${r.message}`;let i=await b(t,void 0);return{config:i instanceof e.t?null:i,previewToken:void 0}}function S(t){let n=new Map,r=t.searchParams.feature;if(!r)return n;for(let t of r){let r=e.c(t);r&&n.set(r.id,r.bucket)}return n}function C(e,t,n,r){let i=S(e);for(let a of t.features){let t=i.get(a.id);if(t!==void 0){w(e,a,t);continue}T(e,a,n,r)}}function w(e,t,n){e.registerFeature(t.id,{key:`${n}`,name:t.name,enabled:!0,weight:t.weight,...t.valueType!==void 0&&{valueType:t.valueType},...t.variants!==void 0&&{variants:t.variants},storage:`session`,decide:()=>n})}function T(e,t,n,r){let i=t.id,s=t.variants;e.registerFeature(i,{key:`v${t.version}`,name:t.name,enabled:t.enabled,weight:t.weight,storage:n?`session`:`local`,valueType:t.valueType,variants:s,decide:()=>t.valueType===`text`?!s||s.length===0?(`${i}`,!1):u(r,i,s)?.value??!1:o(a(r,i),t.weight)})}function E(e,t){for(let n of[...t.references??[],...t.content])e.registerContent({id:n.id,contentModelKey:n.contentModelKey,data:n.data})}function D(e,t){let n=new Map;return(r,i)=>{let a=n.get(r.id);if(a)return a;let o=(async()=>{try{let n=await t(r,i);return n&&E(e,n),n}finally{n.delete(r.id)}})();return n.set(r.id,o),o}}function O(e,t){let n=new Set(t&&Array.isArray(t.experiences)?t.experiences.map(e=>e.id):[]);return(t,r)=>n.has(t.id)?e(t,r):Promise.resolve(null)}function k(){return{name:`dynamic-experiences`,setup:e=>({onStart:(0,t.attach)({source:e.session.store.map(e=>e.id),effect:async t=>{let{config:n,previewToken:r}=await x(e),i=r!==void 0,a=r===void 0?void 0:{previewToken:r};if(e.contentLoader=D(e,O(t=>e.getExperienceContent(t,a),n)),!n)return;let o=e.seededVersionId;if(o!==null&&o!==n.versionId){e.versionSkew={seeded:o,resolved:n.versionId},`${n.versionId}${o}`;return}e.previewEmbedderOrigins=n.previewEmbedderOrigins??null,_(e,n,{isPreview:i,sessionId:t})}})})}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return k}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./logger-CSTvAyyB.cjs"),t=require("./supports-DBzjGaWD.cjs"),n=require("./storage-DUw9UJ2h.cjs");let r=require("effector"),i=require("@withease/factories");var a=(0,r.createDomain)(`feature`);function o(e){return e?.enabled===!1}function s(e){return e===`true`||e!==`false`&&e}function c(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=e.substring(0,t),r=e.substring(t+1);return r.length===0?null:{id:n,bucket:s(r)}}var l=(0,i.createFactory)(({client:t})=>{let i=a.store({}),c=a.store([]),l=(0,r.createApi)(i,{register(e,t){return{...e,[t.id]:t.feature}}}),u=(0,r.createEvent)();(0,r.sample)({clock:u,source:i,filter:(e,{id:t})=>e[t]!==void 0,fn:(e,{id:t})=>`Feature '${t}' already registered. Registering again will override the previous registration.`}).watch(t=>e.t(`warn`,t)),(0,r.sample)({clock:u,fn:({id:e,feature:t})=>Object.freeze({id:e,feature:{id:e,feature:{...t,id:e}}}),target:l.register});let d=(0,r.createEffect)(async({id:e,key:t,storage:r=`local`,enabled:i})=>{if(i===!1)return null;let a=n.t(`feature:${e}:${t}`,`global`),o=(r===`session`?n.r:n.n).get(a).text();return o?{id:e,key:t,bucket:s(o),storage:r}:null}),f=(0,r.createEffect)(e=>{if(!e)return null;let t=n.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?n.r:n.n).set(t,e.bucket)}),p=new Map,m=(0,r.attach)({source:{allFeaturesStore:i,resolvedFeaturesStore:c},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let a=t.find(e=>e.id===n&&e.key===i);if(a)return a;let s=e[n];if(!s)throw Error(`Feature with id '${n}' not found`);if(o(s.feature))return{id:s.id,bucket:!1,key:i,storage:s.feature.storage};let c=p.get(`${n}:${i}`);if(c!==void 0){let e=await c;return{id:s.id,bucket:e,key:i,storage:s.feature.storage}}let l=r();p.set(`${n}:${i}`,l);let u=await l;return{id:s.id,bucket:u,key:i,storage:s.feature.storage}}});(0,r.sample)({clock:l.register,fn:e=>{let{id:t,feature:n}=e;return{id:t,key:n.feature.key,storage:n.feature.storage,enabled:n.feature.enabled}},target:d}),(0,r.sample)({source:i,clock:m.doneData,filter:(e,t)=>!o(e[t.id]?.feature),fn:(e,t)=>{let{id:n,bucket:r,storage:i}=t,a=e[n]?.feature.key;return a?{key:a,id:n,bucket:r,storage:i}:null},target:f});let h=(0,r.combine)({allFeaturesStore:i,resolvedFeaturesStore:c}).map(({allFeaturesStore:e,resolvedFeaturesStore:t})=>Object.values(e).map(e=>{let n=t.find(t=>t.id===e.id&&t.key===e.feature.key);return n?{id:e.id,name:e.feature.name,key:e.feature.key,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:()=>({id:e.id,bucket:n.bucket}),isResolved:!0}:{id:e.id,name:e.feature.name,key:e.feature.key,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:async()=>await m(e.feature),isResolved:!1}}));(0,r.sample)({clock:m.doneData,source:{resolvedFeatures:c,allFeatures:i},filter:({resolvedFeatures:e,allFeatures:t},{id:n,key:r})=>!o(t[n]?.feature)&&!e.some(e=>e.id===n&&e.key===r),fn:(e,t)=>t,target:t.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,r.sample)({clock:[d.doneData,m.doneData],source:{resolvedFeatures:c,allFeatures:i},fn:({resolvedFeatures:e,allFeatures:t},n)=>!n||o(t[n.id]?.feature)||e.some(e=>e.id===n.id&&e.key===n.key)?e:[...e,n],target:c});function g(e){return h.map(t=>t.find(t=>t.id===e),{skipVoid:!1})}let _=new Map,v=new Map,y=new Map;function b(e){let t=_.get(e);if(t)return t;let n=g(e);return _.set(e,n),n}function x(e){return i.map(t=>t[e],{skipVoid:!1})}function S(e){let t=(0,r.createStore)(async()=>void 0,{skipVoid:!1}),n=b(e),i=(0,r.attach)({source:n,effect:async e=>{if(e)return async()=>(await e.getBucket()).bucket}});return(0,r.sample)({clock:n,target:i}),(0,r.sample)({clock:i.doneData,filter:e=>e!==void 0,target:t}),i(),t}function C(e){let t=v.get(e);if(t)return t;let n=S(e);return v.set(e,n),n}function w(e){let t=C(e),n=(0,r.createStore)(void 0,{skipVoid:!1}),i=(0,r.attach)({source:t,mapParams:(e,t)=>t,effect:(0,r.createEffect)(async e=>await e())});return(0,r.sample)({clock:i.doneData,fn:t=>{if(t!==void 0)return{id:e,bucket:t}},target:n}),(0,r.sample)({clock:t,target:i}),i(),n}function T(e){let t=y.get(e);if(t)return t;let n=w(e);return y.set(e,n),n}return{register:u,getById:b,getByName:x,listStore:h,getEvokableFeature:C,getFeatureResult:T}});function u(e){return(0,i.invoke)(l,e)}var d=(e,t,n)=>{n.register({id:e,feature:t})},f=()=>`0.0.
|
|
1
|
+
const e=require("./logger-CSTvAyyB.cjs"),t=require("./supports-DBzjGaWD.cjs"),n=require("./storage-DUw9UJ2h.cjs");let r=require("effector"),i=require("@withease/factories");var a=(0,r.createDomain)(`feature`);function o(e){return e?.enabled===!1}function s(e){return e===`true`||e!==`false`&&e}function c(e){let t=e.indexOf(`:`);if(t<=0)return null;let n=e.substring(0,t),r=e.substring(t+1);return r.length===0?null:{id:n,bucket:s(r)}}var l=(0,i.createFactory)(({client:t})=>{let i=a.store({}),c=a.store([]),l=(0,r.createApi)(i,{register(e,t){return{...e,[t.id]:t.feature}}}),u=(0,r.createEvent)();(0,r.sample)({clock:u,source:i,filter:(e,{id:t})=>e[t]!==void 0,fn:(e,{id:t})=>`Feature '${t}' already registered. Registering again will override the previous registration.`}).watch(t=>e.t(`warn`,t)),(0,r.sample)({clock:u,fn:({id:e,feature:t})=>Object.freeze({id:e,feature:{id:e,feature:{...t,id:e}}}),target:l.register});let d=(0,r.createEffect)(async({id:e,key:t,storage:r=`local`,enabled:i})=>{if(i===!1)return null;let a=n.t(`feature:${e}:${t}`,`global`),o=(r===`session`?n.r:n.n).get(a).text();return o?{id:e,key:t,bucket:s(o),storage:r}:null}),f=(0,r.createEffect)(e=>{if(!e)return null;let t=n.t(`feature:${e.id}:${e.key}`,`global`);(e.storage===`session`?n.r:n.n).set(t,e.bucket)}),p=new Map,m=(0,r.attach)({source:{allFeaturesStore:i,resolvedFeaturesStore:c},effect:async({allFeaturesStore:e,resolvedFeaturesStore:t},{id:n,decide:r,key:i})=>{let a=t.find(e=>e.id===n&&e.key===i);if(a)return a;let s=e[n];if(!s)throw Error(`Feature with id '${n}' not found`);if(o(s.feature))return{id:s.id,bucket:!1,key:i,storage:s.feature.storage};let c=p.get(`${n}:${i}`);if(c!==void 0){let e=await c;return{id:s.id,bucket:e,key:i,storage:s.feature.storage}}let l=r();p.set(`${n}:${i}`,l);let u=await l;return{id:s.id,bucket:u,key:i,storage:s.feature.storage}}});(0,r.sample)({clock:l.register,fn:e=>{let{id:t,feature:n}=e;return{id:t,key:n.feature.key,storage:n.feature.storage,enabled:n.feature.enabled}},target:d}),(0,r.sample)({source:i,clock:m.doneData,filter:(e,t)=>!o(e[t.id]?.feature),fn:(e,t)=>{let{id:n,bucket:r,storage:i}=t,a=e[n]?.feature.key;return a?{key:a,id:n,bucket:r,storage:i}:null},target:f});let h=(0,r.combine)({allFeaturesStore:i,resolvedFeaturesStore:c}).map(({allFeaturesStore:e,resolvedFeaturesStore:t})=>Object.values(e).map(e=>{let n=t.find(t=>t.id===e.id&&t.key===e.feature.key);return n?{id:e.id,name:e.feature.name,key:e.feature.key,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:()=>({id:e.id,bucket:n.bucket}),isResolved:!0}:{id:e.id,name:e.feature.name,key:e.feature.key,enabled:e.feature.enabled,weight:e.feature.weight,valueType:e.feature.valueType,variants:e.feature.variants,getBucket:async()=>await m(e.feature),isResolved:!1}}));(0,r.sample)({clock:m.doneData,source:{resolvedFeatures:c,allFeatures:i},filter:({resolvedFeatures:e,allFeatures:t},{id:n,key:r})=>!o(t[n]?.feature)&&!e.some(e=>e.id===n&&e.key===r),fn:(e,t)=>t,target:t.eventBus.prepend(e=>({type:`feature_decide`,feature:e}))}),(0,r.sample)({clock:[d.doneData,m.doneData],source:{resolvedFeatures:c,allFeatures:i},fn:({resolvedFeatures:e,allFeatures:t},n)=>!n||o(t[n.id]?.feature)||e.some(e=>e.id===n.id&&e.key===n.key)?e:[...e,n],target:c});function g(e){return h.map(t=>t.find(t=>t.id===e),{skipVoid:!1})}let _=new Map,v=new Map,y=new Map;function b(e){let t=_.get(e);if(t)return t;let n=g(e);return _.set(e,n),n}function x(e){return i.map(t=>t[e],{skipVoid:!1})}function S(e){let t=(0,r.createStore)(async()=>void 0,{skipVoid:!1}),n=b(e),i=(0,r.attach)({source:n,effect:async e=>{if(e)return async()=>(await e.getBucket()).bucket}});return(0,r.sample)({clock:n,target:i}),(0,r.sample)({clock:i.doneData,filter:e=>e!==void 0,target:t}),i(),t}function C(e){let t=v.get(e);if(t)return t;let n=S(e);return v.set(e,n),n}function w(e){let t=C(e),n=(0,r.createStore)(void 0,{skipVoid:!1}),i=(0,r.attach)({source:t,mapParams:(e,t)=>t,effect:(0,r.createEffect)(async e=>await e())});return(0,r.sample)({clock:i.doneData,fn:t=>{if(t!==void 0)return{id:e,bucket:t}},target:n}),(0,r.sample)({clock:t,target:i}),i(),n}function T(e){let t=y.get(e);if(t)return t;let n=w(e);return y.set(e,n),n}return{register:u,getById:b,getByName:x,listStore:h,getEvokableFeature:C,getFeatureResult:T}});function u(e){return(0,i.invoke)(l,e)}var d=(e,t,n)=>{n.register({id:e,feature:t})},f=()=>`0.0.85-next.1`;function p(){if(!t.f())return{};let e=new URLSearchParams(window.location.search),r={},i=new Set;for(let[t]of e.entries())t.startsWith(`picked-`)&&i.add(t);for(let t of i){let n=t.replace(`picked-`,``);r[n]=e.getAll(t)}let a=n.t(`s`);if(i.size>0)n.r.set(a,r);else{let e=n.r.get(a);if(e)return e.json()||{}}return r}function m(e,r){if(delete e[r],!t.f())return;let i=n.t(`s`),a=n.r.get(i).json();if(!a)return;let o=Object.fromEntries(Object.entries(a).filter(([e])=>e!==r));if(Object.keys(o).length===0){n.r.remove(i);return}n.r.set(i,o)}var h=`preview-token`;function g(){return!t.f()||!t.t()?!1:!!p()[h]?.[0]}var _=class extends Error{constructor(e){super(`The preview workspace for project "${e}" no longer exists; its published configuration is still available.`),this.name=`PreviewUnavailableError`}};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return _}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("./logger-CSTvAyyB.cjs");const e=require("./api-
|
|
1
|
+
require("./logger-CSTvAyyB.cjs");const e=require("./api-Db2hTYjh.cjs"),t=require("./registry-C1t8l3t9.cjs");function n(e,t){try{return e?.onRequest(t)??{}}catch{return{}}}function r(e,t,n){try{e.onSettled?.(t,n)}catch{}}async function i(e,t,i){let a=n(e?.(),t),o;try{let e=await i(a.headers,e=>{o=e});return r(a,e!==null,o),e}catch(e){throw r(a,!1,o),e}}var a=`bundle`,o=`api`;async function s(){try{let e=await import(`virtual:picked/data`);return t.r(e)?e:null}catch{return null}}function c(e){if(e===void 0||t.r(e))return e}function l(n){let{apiUrl:r,projectId:l,previewToken:u,signal:d,getRequestObserver:f}=n,p=!!u,m=p?o:n.mode,h=c(p?void 0:n.bundle),g=p?void 0:n.projectConfig,_=n.getContent,v={mode:m??o,manifest:null,previewUnavailable:!1},y,b,x=new Map;function S(){if(m===o)return Promise.resolve(null);if(h)return Promise.resolve(h);let e=t.t();return e?Promise.resolve(e):(y??=s(),y)}function C(e){v.mode=e?a:o,v.manifest=e?e.manifestMetadata:null}async function w(){if(g)return C(await S()),g;let t=await S();return C(t),t?t.projectConfig:m===a?null:i(f,`project-config`,(t,n)=>e.n(r,l,{...u!==void 0&&{previewToken:u},...d!==void 0&&{signal:d},...t!==void 0&&{headers:t},onResponse:e=>{v.previewUnavailable=p&&e===404,n?.(e)}}))}async function T(t,n){let o=u===void 0?void 0:{previewToken:u};if(_)return _(t,o);let s=await S();if(C(s),s)try{return await s.experienceContent(t,o)}catch{return`${t.id}`,null}if(m===a)return null;let c=n??d;return i(f,`experience-content`,(n,i)=>e.t(r,l,t.id,{...u!==void 0&&{previewToken:u},...c!==void 0&&{signal:c},...n!==void 0&&{headers:n},...i!==void 0&&{onResponse:i}}))}return{meta:v,getProjectConfig:()=>(b??=w(),b),getContent:(e,t)=>{let n=x.get(e.id);if(n)return n;let r=T(e,t?.signal).finally(()=>{x.delete(e.id)});return x.set(e.id,r),r}}}exports.createPickedDataProvider=l;
|
|
@@ -16,6 +16,15 @@ export interface LogicRule {
|
|
|
16
16
|
export type LogicContext = {
|
|
17
17
|
[key: string]: LogicValue;
|
|
18
18
|
} | LogicValue;
|
|
19
|
+
/**
|
|
20
|
+
* Every operator this engine dispatches, from both places a dispatch can live. An entry in
|
|
21
|
+
* `operations` joins by being added to it; a case in `apply`'s switch joins through
|
|
22
|
+
* `CONTROL_OPERATORS`, and `logic-engine.test.ts` fails when one is missing from there.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* OPERATORS.includes('regexp_matches') // true
|
|
26
|
+
*/
|
|
27
|
+
export declare const OPERATORS: readonly string[];
|
|
19
28
|
/**
|
|
20
29
|
* Evaluates a JSON Logic expression against a data context.
|
|
21
30
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic-engine.d.ts","sourceRoot":"","sources":["../../src/logic-engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAA;AAEpG,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAC,GACpC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC,GACjD,OAAO,CAAC,cAAc,CAAC,CAAA;AAE3B,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAED,KAAK,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;AAEnC,MAAM,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"logic-engine.d.ts","sourceRoot":"","sources":["../../src/logic-engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAA;AAEpG,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAC,GACpC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC,GACjD,OAAO,CAAC,cAAc,CAAC,CAAA;AAE3B,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAED,KAAK,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;AAEnC,MAAM,MAAM,cAAc,GACxB,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,cAAc,EAAE,CAAA;AAE3F,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,EAAE,CAAA;CACjD;AAED,MAAM,MAAM,YAAY,GACpB;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B,GACD,UAAU,CAAA;AA0Td;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAAuD,CAAA;AAE9F;;;;;;;GAOG;AAEH,wBAAsB,KAAK,CACzB,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,EAC3C,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,UAAU,CAAC,CAmJrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dynamic-experiences/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dynamic-experiences/plugin.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAI1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAO1C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AA+J5E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACjD,IAAI,CAON;AAkaD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CA+CjD"}
|
package/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@picked/client",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.85-next.1",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@picked/delivery-api-client": "0.0.
|
|
5
|
+
"@picked/delivery-api-client": "0.0.85-next.1",
|
|
6
6
|
"@withease/factories": "^1.0.5",
|
|
7
|
-
"@picked/telemetry": "0.0.
|
|
7
|
+
"@picked/telemetry": "0.0.85-next.1"
|
|
8
8
|
},
|
|
9
9
|
"devDependencies": {
|
|
10
10
|
"@repo/eslint-config": "workspace:*",
|
|
11
11
|
"@repo/typescript-config": "workspace:*",
|
|
12
|
+
"@repo/vitest-config": "workspace:*",
|
|
12
13
|
"@rollup/plugin-replace": "^6.0.3",
|
|
13
14
|
"@size-limit/preset-small-lib": "^12.1.0",
|
|
14
15
|
"@testing-library/dom": "^10.4.1",
|
|
15
|
-
"@vitest/
|
|
16
|
-
"@vitest/coverage-v8": "^4.1.11",
|
|
16
|
+
"@vitest/coverage-v8": "^5.0.1",
|
|
17
17
|
"effector": "^23.4.4",
|
|
18
18
|
"happy-dom": "^20.11.1",
|
|
19
19
|
"size-limit": "^12.1.0",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"typedoc": "^0.28.20",
|
|
22
22
|
"typedoc-plugin-markdown": "^4.12.0",
|
|
23
23
|
"vite": "^8.2.0",
|
|
24
|
-
"vitest": "^
|
|
24
|
+
"vitest": "^5.0.1"
|
|
25
25
|
},
|
|
26
26
|
"exports": {
|
|
27
27
|
".": {
|
|
@@ -30,6 +30,12 @@
|
|
|
30
30
|
"require": "./dist/cjs/index.js",
|
|
31
31
|
"default": "./dist/esm/index.js"
|
|
32
32
|
},
|
|
33
|
+
"./logic-engine": {
|
|
34
|
+
"types": "./dist/types/logic-engine.d.ts",
|
|
35
|
+
"import": "./dist/esm/logic-engine.js",
|
|
36
|
+
"require": "./dist/cjs/logic-engine.js",
|
|
37
|
+
"default": "./dist/esm/logic-engine.js"
|
|
38
|
+
},
|
|
33
39
|
"./server": {
|
|
34
40
|
"types": "./dist/types/server/index.d.ts",
|
|
35
41
|
"import": "./dist/esm/server/index.js",
|
|
@@ -137,6 +143,7 @@
|
|
|
137
143
|
"@picked/delivery-api-client",
|
|
138
144
|
"@repo/eslint-config",
|
|
139
145
|
"@repo/typescript-config",
|
|
146
|
+
"@repo/vitest-config",
|
|
140
147
|
"@testing-library/dom",
|
|
141
148
|
"tslib"
|
|
142
149
|
],
|
|
@@ -146,7 +153,6 @@
|
|
|
146
153
|
"src/utils/object.ts",
|
|
147
154
|
"src/utils/indexed-db.ts",
|
|
148
155
|
"src/utils/search-params.ts",
|
|
149
|
-
"src/logic-engine.ts",
|
|
150
156
|
"src/plugins/experience-browser-storage/plugin.ts",
|
|
151
157
|
"src/plugins/history-browser-storage/plugin.ts",
|
|
152
158
|
"src/plugins/responses-browser-storage/plugin.ts"
|
|
@@ -183,6 +189,11 @@
|
|
|
183
189
|
"limit": "20 kB",
|
|
184
190
|
"name": "index (incl. lazily-loaded preview channel and data provider; see AGENTS.md)"
|
|
185
191
|
},
|
|
192
|
+
{
|
|
193
|
+
"path": "dist/esm/logic-engine.js",
|
|
194
|
+
"limit": "5 kB",
|
|
195
|
+
"name": "logic engine (shared with apps/api through the ./logic-engine subpath)"
|
|
196
|
+
},
|
|
186
197
|
{
|
|
187
198
|
"path": "dist/esm/server/index.js",
|
|
188
199
|
"limit": "10 kB"
|