@picked/client 0.0.1-dev.1777938796953 → 0.0.1-dev.1778136207545
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/README.md +0 -8
- package/dist/{api-Bn4z854o.js → api-Crj5wFbR.js} +1 -1
- package/dist/{api-GE6C0lxp.cjs → api-NcKXNrkY.cjs} +1 -1
- package/dist/cjs/form/index.js +1 -1
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
- package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
- package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
- package/dist/cjs/plugins/single-page-app/index.js +1 -1
- package/dist/cjs/plugins/web-components/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/docs/actions.mdx +0 -1
- package/dist/docs/index.md +0 -2
- package/dist/docs/pickedql/dimensions.md +2 -0
- package/dist/docs/pickedql/virtual-functions.md +27 -0
- package/dist/docs/sdk/actions.md +0 -1
- package/dist/docs/sdk/features.md +0 -1
- package/dist/docs/sdk/index.md +0 -1
- package/dist/docs/sdk/plugins/create-experience.md +0 -1
- package/dist/docs/sdk/plugins/dynamic-experiences.md +0 -1
- package/dist/docs/sdk/plugins/window-object.md +0 -1
- package/dist/docs/sdk/predicates.md +0 -1
- package/dist/esm/form/index.js +1 -1
- package/dist/esm/index.js +1011 -533
- package/dist/esm/plugins/dynamic-experiences/index.js +127 -60
- package/dist/esm/plugins/experience-browser-storage/index.js +8 -5
- package/dist/esm/plugins/history-browser-storage/index.js +3 -3
- package/dist/esm/plugins/single-page-app/index.js +1 -1
- package/dist/esm/plugins/web-components/index.js +1 -1
- package/dist/esm/server/index.js +23 -13
- package/dist/{experience-instance-CWYRLfFM.js → experience-instance-BrLWgVAN.js} +135 -127
- package/dist/experience-instance-Ct3ogC7n.cjs +1 -0
- package/dist/rules-logic-D_CVBuv7.js +13 -0
- package/dist/rules-logic-H6P8xwHF.cjs +1 -0
- package/dist/types/client.d.ts +2 -2
- package/dist/types/entities/action/action.d.ts +6 -3
- package/dist/types/entities/action/action.d.ts.map +1 -1
- package/dist/types/entities/component/component.d.ts +39 -2
- package/dist/types/entities/component/component.d.ts.map +1 -1
- package/dist/types/entities/content/content.d.ts +37 -0
- package/dist/types/entities/content/content.d.ts.map +1 -0
- package/dist/types/entities/experience/experience.d.ts +69 -112
- package/dist/types/entities/experience/experience.d.ts.map +1 -1
- package/dist/types/entities/experience-instance/experience-instance.d.ts +17 -2
- package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
- package/dist/types/entities/feature/feature.d.ts +26 -2
- package/dist/types/entities/feature/feature.d.ts.map +1 -1
- package/dist/types/entities/field/field.d.ts.map +1 -1
- package/dist/types/entities/framework/framework.d.ts +24 -3
- package/dist/types/entities/framework/framework.d.ts.map +1 -1
- package/dist/types/entities/history/history.d.ts +15 -27
- package/dist/types/entities/history/history.d.ts.map +1 -1
- package/dist/types/entities/plugin/plugin.d.ts +32 -1
- package/dist/types/entities/plugin/plugin.d.ts.map +1 -1
- package/dist/types/entities/predicate/predicate.d.ts +24 -3
- package/dist/types/entities/predicate/predicate.d.ts.map +1 -1
- package/dist/types/entities/session/session.d.ts +45 -0
- package/dist/types/entities/session/session.d.ts.map +1 -0
- package/dist/types/entities/step/step.d.ts +14 -0
- package/dist/types/entities/step/step.d.ts.map +1 -1
- package/dist/types/exports.d.ts +9 -3
- package/dist/types/exports.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lifecycle/lifecycle.d.ts +47 -0
- package/dist/types/lifecycle/lifecycle.d.ts.map +1 -0
- package/dist/types/lifecycle/rules-logic.d.ts +24 -0
- package/dist/types/lifecycle/rules-logic.d.ts.map +1 -0
- package/dist/types/lifecycle/state-snapshot.d.ts +37 -0
- package/dist/types/lifecycle/state-snapshot.d.ts.map +1 -0
- package/dist/types/logic-engine.d.ts +1 -1
- package/dist/types/logic-engine.d.ts.map +1 -1
- package/dist/types/picked.d.ts +149 -190
- package/dist/types/picked.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/index.d.ts +2 -1
- package/dist/types/plugins/dynamic-experiences/index.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/plugin.d.ts +18 -1
- package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +1 -1
- package/dist/types/plugins/dynamic-experiences/types.d.ts +62 -1
- package/dist/types/plugins/dynamic-experiences/types.d.ts.map +1 -1
- package/dist/types/plugins/experience-browser-storage/plugin.d.ts.map +1 -1
- package/dist/types/plugins/history-browser-storage/plugin.d.ts +0 -14
- package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +1 -1
- package/dist/types/plugins/web-components/plugin.d.ts.map +1 -1
- package/dist/types/server/index.d.ts +7 -0
- package/dist/types/server/index.d.ts.map +1 -1
- package/dist/types/utils/events.d.ts +1 -1
- package/dist/types/utils/events.d.ts.map +1 -1
- package/dist/types/utils/picked-config.d.ts +12 -4
- package/dist/types/utils/picked-config.d.ts.map +1 -1
- package/dist/types/utils/rules-logic.d.ts +4 -9
- package/dist/types/utils/rules-logic.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/experience-instance-BDTNGT8a.cjs +0 -1
- package/dist/rules-logic-BTIxfrJJ.js +0 -240
- package/dist/rules-logic-DNLOv90w.cjs +0 -1
- package/dist/types/utils/state-snaphot.d.ts +0 -26
- package/dist/types/utils/state-snaphot.d.ts.map +0 -1
- package/dist/types/utils/user-session.d.ts +0 -12
- package/dist/types/utils/user-session.d.ts.map +0 -1
- /package/dist/{object-C82v79xc.js → object-DvUDOytC.js} +0 -0
- /package/dist/{object-CUJOjanb.cjs → object-ThO1DEyl.cjs} +0 -0
package/dist/esm/index.js
CHANGED
|
@@ -1,78 +1,109 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as n } from "../
|
|
1
|
+
import { t as e } from "../object-DvUDOytC.js";
|
|
2
|
+
import { n as t, t as n } from "../rules-logic-D_CVBuv7.js";
|
|
3
3
|
import { t as r } from "../logger-6z_gb4rA.js";
|
|
4
4
|
import { a as i, c as a, d as o, i as s, l as c, n as l, o as u, p as d, r as f, s as p, t as m, u as h } from "../supports-0XIfd4-R.js";
|
|
5
|
-
import { a as g, c as _, i as v, l as
|
|
6
|
-
import { i as
|
|
7
|
-
import { n as
|
|
8
|
-
import { t as
|
|
9
|
-
import { attach as
|
|
10
|
-
import { createFactory as
|
|
5
|
+
import { a as g, c as _, i as v, l as y, n as b, o as ee, r as x, s as S } from "../experience-instance-BrLWgVAN.js";
|
|
6
|
+
import { i as C, n as w, r as T, t as E } from "../storage-6Xk0uAxB.js";
|
|
7
|
+
import { n as D, r as te } from "../api-Crj5wFbR.js";
|
|
8
|
+
import { t as ne } from "../id-CRqy981z.js";
|
|
9
|
+
import { attach as O, combine as k, createApi as A, createDomain as j, createEffect as M, createEvent as N, createStore as P, sample as F } from "effector";
|
|
10
|
+
import { createFactory as I, invoke as L } from "@withease/factories";
|
|
11
11
|
//#region src/entities/experience/experience.ts
|
|
12
|
-
var
|
|
13
|
-
let
|
|
12
|
+
var re = j("experience"), ie = I(({ client: e, experience: r }) => {
|
|
13
|
+
let i = re.store(r), a = A(i, { merge(e, t) {
|
|
14
14
|
return {
|
|
15
15
|
...e,
|
|
16
16
|
...t.experience
|
|
17
17
|
};
|
|
18
|
-
} }),
|
|
18
|
+
} }), o = i.map((e) => ({
|
|
19
19
|
name: e.name,
|
|
20
20
|
decisionLogic: e.condition,
|
|
21
21
|
targetSelectors: e.targets,
|
|
22
22
|
initializeOpenLogic: e.initializeOpen
|
|
23
|
-
})),
|
|
24
|
-
let r = e.nodes.filter(v).map((e) => t[e.stepId]).filter((e) => e !== void 0), i = e.nodes.filter(
|
|
23
|
+
})), s = k(i, e.components.listStore, (e, t) => (e.componentName ? t.find((t) => t.name === e.componentName) : void 0) || t.find((t) => t.name === `experience:${e.id}`) || t.find((e) => e.name === "experience"), { skipVoid: !1 }), c = k(i, e.steps.indexStore, e.conditions.indexStore, (e, t, n) => {
|
|
24
|
+
let r = e.nodes.filter(v).map((e) => t[e.stepId]).filter((e) => e !== void 0), i = e.nodes.filter(x).map((e) => n[e.conditionId]).filter((e) => e !== void 0);
|
|
25
25
|
return {
|
|
26
26
|
steps: r,
|
|
27
27
|
nodes: e.nodes,
|
|
28
28
|
edges: e.edges,
|
|
29
29
|
conditions: i
|
|
30
30
|
};
|
|
31
|
-
}),
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
31
|
+
}), l = r.actions ?? [], u, d = O({
|
|
32
|
+
source: o,
|
|
33
|
+
effect: (t, n) => {
|
|
34
|
+
let i = S(t.targetSelectors, r.id);
|
|
35
|
+
i.forEach(({ elements: e }) => e.forEach((e) => y(e, r.id))), g(i, r.id, r.key).forEach((t) => {
|
|
36
|
+
n ? e.experienceInstances.spawn(u, t, n) : e.experienceInstances.spawn(u, t);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}), f = O({
|
|
40
|
+
source: k({
|
|
41
|
+
preconditionPassed: e.preconditionPassedStore,
|
|
42
|
+
isUser: e.session.store.map((e) => e.isUser, { skipVoid: !1 }),
|
|
43
|
+
config: o
|
|
44
|
+
}),
|
|
45
|
+
effect: async ({ preconditionPassed: i, isUser: a, config: o }) => {
|
|
46
|
+
if (!i || !a) return !1;
|
|
47
|
+
let { decisionLogic: s, targetSelectors: c } = o;
|
|
48
|
+
return c.length === 0 || S(c, r.id).length < 1 ? !1 : s === void 0 ? !0 : t(s) ? await n(e, s) === !0 : !0;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return u = {
|
|
52
|
+
id: r.id,
|
|
53
|
+
key: r.key,
|
|
54
|
+
name: r.name,
|
|
55
|
+
configStore: o,
|
|
56
|
+
treeStore: c,
|
|
57
|
+
componentStore: s,
|
|
58
|
+
actions: l,
|
|
59
|
+
merge: a.merge,
|
|
60
|
+
initialiseFx: d,
|
|
61
|
+
shouldInitialiseFx: f
|
|
62
|
+
}, u;
|
|
42
63
|
});
|
|
43
|
-
function
|
|
44
|
-
return
|
|
64
|
+
function ae(e) {
|
|
65
|
+
return L(ie, e);
|
|
45
66
|
}
|
|
46
|
-
var
|
|
47
|
-
let t =
|
|
67
|
+
var oe = I(({ client: e }) => {
|
|
68
|
+
let t = re.store({}), n = A(t, { register(e, t) {
|
|
48
69
|
return {
|
|
49
70
|
...e,
|
|
50
71
|
[t.id]: t
|
|
51
72
|
};
|
|
52
|
-
} })
|
|
53
|
-
|
|
54
|
-
let i = t.getState()[r.id];
|
|
55
|
-
if (i) {
|
|
56
|
-
i.merge({
|
|
57
|
-
experience: r,
|
|
58
|
-
strategy: "override"
|
|
59
|
-
});
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
let a = ce({
|
|
73
|
+
} }), r = N(), i = M((t) => {
|
|
74
|
+
n.register(ae({
|
|
63
75
|
client: e,
|
|
64
|
-
experience:
|
|
76
|
+
experience: t
|
|
77
|
+
}));
|
|
78
|
+
});
|
|
79
|
+
F({
|
|
80
|
+
clock: r,
|
|
81
|
+
source: t,
|
|
82
|
+
filter: (e, t) => e[t.id] !== void 0,
|
|
83
|
+
fn: (e, t) => ({
|
|
84
|
+
existing: e[t.id],
|
|
85
|
+
experience: t
|
|
86
|
+
})
|
|
87
|
+
}).watch(({ existing: e, experience: t }) => {
|
|
88
|
+
e?.merge({
|
|
89
|
+
experience: t,
|
|
90
|
+
strategy: "override"
|
|
65
91
|
});
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
92
|
+
}), F({
|
|
93
|
+
clock: r,
|
|
94
|
+
source: t,
|
|
95
|
+
filter: (e, t) => e[t.id] === void 0,
|
|
96
|
+
fn: (e, t) => t,
|
|
97
|
+
target: i
|
|
98
|
+
});
|
|
99
|
+
let a = t.map((e) => Object.values(e));
|
|
100
|
+
function o(e) {
|
|
70
101
|
return t.map((t) => t[e], { skipVoid: !1 });
|
|
71
102
|
}
|
|
72
|
-
function
|
|
103
|
+
function s(e) {
|
|
73
104
|
return t.map((t) => Object.values(t).find((t) => t.key === e) ?? t[e], { skipVoid: !1 });
|
|
74
105
|
}
|
|
75
|
-
let
|
|
106
|
+
let c = O({
|
|
76
107
|
source: t,
|
|
77
108
|
effect: async (t, n) => {
|
|
78
109
|
let r = "key" in n ? Object.values(t).find((e) => e.key === n.key) : t[n.id];
|
|
@@ -82,27 +113,30 @@ var le = M(({ client: e }) => {
|
|
|
82
113
|
}
|
|
83
114
|
let { options: i } = n;
|
|
84
115
|
if (i?.bypassCondition) {
|
|
85
|
-
|
|
116
|
+
await R(e, r), await r.initialiseFx(i);
|
|
86
117
|
return;
|
|
87
118
|
}
|
|
88
|
-
await
|
|
119
|
+
await r.shouldInitialiseFx() && (await R(e, r), await r.initialiseFx(i));
|
|
89
120
|
}
|
|
90
121
|
});
|
|
91
122
|
return {
|
|
92
123
|
register: r,
|
|
93
|
-
get:
|
|
94
|
-
getById:
|
|
95
|
-
getByKey:
|
|
96
|
-
launch:
|
|
97
|
-
open:
|
|
124
|
+
get: o,
|
|
125
|
+
getById: o,
|
|
126
|
+
getByKey: s,
|
|
127
|
+
launch: c,
|
|
128
|
+
open: O({
|
|
98
129
|
source: {
|
|
99
130
|
experiences: t,
|
|
100
131
|
instances: e.experienceInstances.listStore
|
|
101
132
|
},
|
|
102
|
-
effect: ({ experiences: e, instances: t }, n) => {
|
|
133
|
+
effect: async ({ experiences: e, instances: t }, n) => {
|
|
103
134
|
let r = "key" in n ? Object.values(e).find((e) => e.key === n.key) : e[n.id], i = t.filter((e) => r && e.experienceId === r.id);
|
|
104
|
-
if (i.length > 0)
|
|
105
|
-
|
|
135
|
+
if (i.length > 0) {
|
|
136
|
+
for (let e of i) e.open();
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
await c("key" in n ? {
|
|
106
140
|
key: n.key,
|
|
107
141
|
options: {
|
|
108
142
|
...n.options,
|
|
@@ -117,26 +151,42 @@ var le = M(({ client: e }) => {
|
|
|
117
151
|
});
|
|
118
152
|
}
|
|
119
153
|
}),
|
|
120
|
-
listStore:
|
|
154
|
+
listStore: a,
|
|
155
|
+
initialiseExperiencesFx: O({
|
|
156
|
+
source: a,
|
|
157
|
+
effect: async (t) => {
|
|
158
|
+
await Promise.all(t.map(async (t) => {
|
|
159
|
+
await t.shouldInitialiseFx() && (await R(e, t), await t.initialiseFx(void 0));
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
162
|
+
})
|
|
121
163
|
};
|
|
122
164
|
});
|
|
123
|
-
function
|
|
124
|
-
return
|
|
165
|
+
function se(e) {
|
|
166
|
+
return L(oe, e);
|
|
125
167
|
}
|
|
126
|
-
var
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
168
|
+
var ce = async (e) => {
|
|
169
|
+
await e.experiences.initialiseExperiencesFx();
|
|
170
|
+
}, R = async (e, t) => {
|
|
171
|
+
if (!e.contentLoader) return !0;
|
|
172
|
+
try {
|
|
173
|
+
await e.contentLoader({
|
|
174
|
+
id: t.id,
|
|
175
|
+
key: t.key
|
|
176
|
+
});
|
|
177
|
+
} catch {
|
|
178
|
+
`${t.id}`;
|
|
179
|
+
}
|
|
180
|
+
return !0;
|
|
181
|
+
};
|
|
182
|
+
//#endregion
|
|
183
|
+
//#region src/entities/plugin/plugin.ts
|
|
184
|
+
function le(e) {
|
|
185
|
+
return M(async () => {
|
|
186
|
+
await e();
|
|
130
187
|
});
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
await L(e, t) && F(e, t);
|
|
134
|
-
}));
|
|
135
|
-
}, L = async (n, r) => {
|
|
136
|
-
if (!n.preconditionPassed || !n.session?.isUser) return !1;
|
|
137
|
-
let { decisionLogic: i, targetSelectors: a } = r.configStore.getState();
|
|
138
|
-
return y(a, r.id).length < 1 || a.length === 0 ? !1 : i === void 0 ? !0 : e(i) ? await t(n, i) === !0 : !0;
|
|
139
|
-
}, de = (e, t, n) => {
|
|
188
|
+
}
|
|
189
|
+
var ue = (e, t, n) => {
|
|
140
190
|
let r = t.name, i = t.setup(e);
|
|
141
191
|
if (i) {
|
|
142
192
|
let e = n[r] ?? {};
|
|
@@ -145,106 +195,508 @@ var F = (e, t, n) => {
|
|
|
145
195
|
...i
|
|
146
196
|
});
|
|
147
197
|
}
|
|
148
|
-
},
|
|
198
|
+
}, de = j("component"), fe = I(({ client: e, component: t, name: n }) => ({
|
|
149
199
|
name: n,
|
|
150
200
|
component: t,
|
|
151
201
|
frameworkStore: e.frameworks.getByName(t.frameworkName)
|
|
152
202
|
}));
|
|
153
|
-
function
|
|
154
|
-
return
|
|
203
|
+
function pe(e) {
|
|
204
|
+
return L(fe, e);
|
|
155
205
|
}
|
|
156
|
-
var
|
|
157
|
-
let t =
|
|
206
|
+
var me = I(({ client: e }) => {
|
|
207
|
+
let t = de.store({}), n = A(t, { register(e, t) {
|
|
158
208
|
return {
|
|
159
209
|
...e,
|
|
160
210
|
[t.name]: t
|
|
161
211
|
};
|
|
162
|
-
} });
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
212
|
+
} }), i = N();
|
|
213
|
+
F({
|
|
214
|
+
clock: i,
|
|
215
|
+
source: t,
|
|
216
|
+
filter: (e, { name: t }) => e[t] !== void 0,
|
|
217
|
+
fn: (e, { name: t }) => `Component '${t}' already registered. Registering again will override the previous registration.`
|
|
218
|
+
}).watch((e) => /* @__PURE__ */ r("warn", e)), F({
|
|
219
|
+
clock: i,
|
|
220
|
+
fn: ({ name: t, component: n }) => pe({
|
|
166
221
|
client: e,
|
|
167
|
-
name:
|
|
168
|
-
component:
|
|
169
|
-
})
|
|
170
|
-
n.register
|
|
171
|
-
}
|
|
172
|
-
let
|
|
173
|
-
function
|
|
222
|
+
name: t,
|
|
223
|
+
component: n
|
|
224
|
+
}),
|
|
225
|
+
target: n.register
|
|
226
|
+
});
|
|
227
|
+
let a = t.map((e) => Object.values(e));
|
|
228
|
+
function o(e) {
|
|
174
229
|
return t.map((t) => t[e], { skipVoid: !1 });
|
|
175
230
|
}
|
|
176
231
|
return {
|
|
177
|
-
register:
|
|
178
|
-
getByName:
|
|
179
|
-
listStore:
|
|
232
|
+
register: i,
|
|
233
|
+
getByName: o,
|
|
234
|
+
listStore: a
|
|
180
235
|
};
|
|
181
236
|
});
|
|
182
|
-
function
|
|
183
|
-
return
|
|
237
|
+
function he(e) {
|
|
238
|
+
return L(me, e);
|
|
184
239
|
}
|
|
185
|
-
var
|
|
186
|
-
n.register(
|
|
187
|
-
|
|
188
|
-
|
|
240
|
+
var ge = (e, t, n) => {
|
|
241
|
+
n.register({
|
|
242
|
+
name: e,
|
|
243
|
+
component: t
|
|
244
|
+
});
|
|
245
|
+
}, _e = j("framework"), ve = I((e) => {
|
|
246
|
+
let t = _e.store({}), n = A(t, { register(e, t) {
|
|
189
247
|
return {
|
|
190
248
|
...e,
|
|
191
249
|
[t.name]: t.framework
|
|
192
250
|
};
|
|
193
|
-
} });
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
})
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
|
|
251
|
+
} }), i = N();
|
|
252
|
+
F({
|
|
253
|
+
clock: i,
|
|
254
|
+
source: t,
|
|
255
|
+
filter: (e, { name: t }) => e[t] !== void 0,
|
|
256
|
+
fn: (e, { name: t }) => `Framework '${t}' already registered. Registering again will override the previous registration.`
|
|
257
|
+
}).watch((e) => /* @__PURE__ */ r("warn", e)), F({
|
|
258
|
+
clock: i,
|
|
259
|
+
target: n.register
|
|
260
|
+
});
|
|
261
|
+
let a = t.map((e) => Object.values(e));
|
|
262
|
+
function o(e) {
|
|
202
263
|
return t.map((t) => t[e], { skipVoid: !1 });
|
|
203
264
|
}
|
|
204
265
|
return {
|
|
205
|
-
register:
|
|
206
|
-
getByName:
|
|
207
|
-
listStore:
|
|
266
|
+
register: i,
|
|
267
|
+
getByName: o,
|
|
268
|
+
listStore: a
|
|
208
269
|
};
|
|
209
270
|
});
|
|
210
|
-
function
|
|
211
|
-
return
|
|
271
|
+
function ye(e) {
|
|
272
|
+
return L(ve, e);
|
|
273
|
+
}
|
|
274
|
+
var be = (e, t) => {
|
|
275
|
+
t.register({
|
|
276
|
+
name: e.name,
|
|
277
|
+
framework: e
|
|
278
|
+
});
|
|
279
|
+
}, xe = I(({ client: e }) => {
|
|
280
|
+
let t = typeof window < "u", n = {
|
|
281
|
+
location: t ? window.location : void 0,
|
|
282
|
+
document: t ? window.document : void 0,
|
|
283
|
+
sessionStorage: t ? window.sessionStorage : void 0,
|
|
284
|
+
localStorage: t ? window.localStorage : void 0
|
|
285
|
+
};
|
|
286
|
+
return k(e.responses.listStore, e.fields.listStore, (t, r) => Object.freeze({
|
|
287
|
+
client: e,
|
|
288
|
+
responses: t,
|
|
289
|
+
fields: r,
|
|
290
|
+
...n
|
|
291
|
+
}));
|
|
292
|
+
});
|
|
293
|
+
function Se(e) {
|
|
294
|
+
return L(xe, e);
|
|
295
|
+
}
|
|
296
|
+
//#endregion
|
|
297
|
+
//#region src/logic-engine.ts
|
|
298
|
+
function Ce(e) {
|
|
299
|
+
return typeof e == "number" && !isNaN(e);
|
|
300
|
+
}
|
|
301
|
+
function z(e) {
|
|
302
|
+
return typeof e == "string";
|
|
303
|
+
}
|
|
304
|
+
function B(e) {
|
|
305
|
+
return Array.isArray(e);
|
|
306
|
+
}
|
|
307
|
+
function V(e) {
|
|
308
|
+
return e instanceof Promise;
|
|
309
|
+
}
|
|
310
|
+
function H(e) {
|
|
311
|
+
return typeof e == "object" && !!e && !Array.isArray(e) && Object.keys(e).length === 1;
|
|
312
|
+
}
|
|
313
|
+
function U(e) {
|
|
314
|
+
if (Ce(e)) return e;
|
|
315
|
+
let t = parseFloat(`${e}`);
|
|
316
|
+
return isNaN(t) ? 0 : t;
|
|
317
|
+
}
|
|
318
|
+
function W(e) {
|
|
319
|
+
return `${e}`;
|
|
320
|
+
}
|
|
321
|
+
var we = {
|
|
322
|
+
"==": (e, t) => e == t,
|
|
323
|
+
"===": (e, t) => e === t,
|
|
324
|
+
"!=": (e, t) => e != t,
|
|
325
|
+
"!==": (e, t) => e !== t,
|
|
326
|
+
">": (e, t) => U(e) > U(t),
|
|
327
|
+
">=": (e, t) => U(e) >= U(t),
|
|
328
|
+
"<": (e, t, n) => {
|
|
329
|
+
let r = U(e), i = U(t);
|
|
330
|
+
if (n === void 0) return r < i;
|
|
331
|
+
let a = U(n);
|
|
332
|
+
return r < i && i < a;
|
|
333
|
+
},
|
|
334
|
+
"<=": (e, t, n) => {
|
|
335
|
+
let r = U(e), i = U(t);
|
|
336
|
+
if (n === void 0) return r <= i;
|
|
337
|
+
let a = U(n);
|
|
338
|
+
return r <= i && i <= a;
|
|
339
|
+
},
|
|
340
|
+
"!!": async (e) => await K(e),
|
|
341
|
+
"!": async (e) => !await K(e),
|
|
342
|
+
"%": (e, t) => U(e) % U(t),
|
|
343
|
+
log: (e) => (console.log(e), e),
|
|
344
|
+
in: (e, t) => t ? z(t) ? t.indexOf(W(e)) !== -1 : B(t) ? t.includes(e) : !1 : !1,
|
|
345
|
+
cat: (...e) => e.map(W).join(""),
|
|
346
|
+
substr: (e, t, n) => {
|
|
347
|
+
let r = W(e), i = U(t);
|
|
348
|
+
if (n === void 0) return r.substr(i);
|
|
349
|
+
let a = U(n);
|
|
350
|
+
if (a < 0) {
|
|
351
|
+
let e = r.substr(i);
|
|
352
|
+
return e.substr(0, e.length + a);
|
|
353
|
+
}
|
|
354
|
+
return r.substr(i, a);
|
|
355
|
+
},
|
|
356
|
+
"+": (...e) => e.reduce((e, t) => U(e) + U(t), 0),
|
|
357
|
+
"*": (...e) => e.reduce((e, t) => U(e) * U(t), 1),
|
|
358
|
+
"-": (e, t) => {
|
|
359
|
+
let n = U(e);
|
|
360
|
+
return t === void 0 ? -n : n - U(t);
|
|
361
|
+
},
|
|
362
|
+
"/": (e, t) => U(e) / U(t),
|
|
363
|
+
min: (...e) => Math.min(...e.map(U)),
|
|
364
|
+
max: (...e) => Math.max(...e.map(U)),
|
|
365
|
+
merge: (...e) => e.reduce((e, t) => B(t) ? e.concat(t) : e.concat([t]), []),
|
|
366
|
+
var(e, t) {
|
|
367
|
+
let n = arguments.length > 1 ? t : null;
|
|
368
|
+
if (e === "" || e === "." || e == null) return this;
|
|
369
|
+
if (typeof e == "number" && Array.isArray(this)) return e >= 0 && e < this.length ? this[e] : n;
|
|
370
|
+
let r = W(e);
|
|
371
|
+
if (r === "" || r === ".") return this;
|
|
372
|
+
let i = r.split("."), a = this;
|
|
373
|
+
for (let e of i) {
|
|
374
|
+
if (a == null) return n;
|
|
375
|
+
if (Array.isArray(a)) {
|
|
376
|
+
let t = parseInt(e, 10);
|
|
377
|
+
a = isNaN(t) ? a[e] : a[t];
|
|
378
|
+
} else a = a[e];
|
|
379
|
+
}
|
|
380
|
+
return a === void 0 ? n : a;
|
|
381
|
+
},
|
|
382
|
+
async missing(...e) {
|
|
383
|
+
let t = B(e[0]) ? e[0] : e, n = [];
|
|
384
|
+
for (let e of t) {
|
|
385
|
+
let t = await G({ var: e }, this);
|
|
386
|
+
(t === null || t === "") && n.push(`${e}`);
|
|
387
|
+
}
|
|
388
|
+
return n;
|
|
389
|
+
},
|
|
390
|
+
async missing_some(e, t) {
|
|
391
|
+
let n = await G({ missing: t }, this);
|
|
392
|
+
if (!B(n) || !B(t)) return [];
|
|
393
|
+
let r = n.filter(z);
|
|
394
|
+
return t.filter(z).length - r.length >= U(e) ? [] : r;
|
|
395
|
+
},
|
|
396
|
+
invoke(...e) {
|
|
397
|
+
let [t, ...n] = e;
|
|
398
|
+
return typeof t == "function" ? Reflect.apply(t, null, n) : null;
|
|
399
|
+
},
|
|
400
|
+
startsWith: (e, t) => z(e) && z(t) && e.startsWith(t),
|
|
401
|
+
endsWith: (e, t) => z(e) && z(t) && e.endsWith(t),
|
|
402
|
+
regexp_matches(e, t) {
|
|
403
|
+
let n = e, r = "";
|
|
404
|
+
if (B(e)) {
|
|
405
|
+
let [t, i] = e;
|
|
406
|
+
n = t, r = i;
|
|
407
|
+
}
|
|
408
|
+
return !z(n) || !z(r) ? !1 : new RegExp(n, r).test(W(t));
|
|
409
|
+
},
|
|
410
|
+
throw(e) {
|
|
411
|
+
throw Error(W(e));
|
|
412
|
+
}
|
|
413
|
+
};
|
|
414
|
+
async function G(e, t) {
|
|
415
|
+
if (!e) return e;
|
|
416
|
+
if (V(e)) return G(await e, t);
|
|
417
|
+
if (B(e)) return Promise.all(e.map((e) => G(e, t)));
|
|
418
|
+
if (!H(e)) return e;
|
|
419
|
+
let n = Te(e), r = n ? e[n] ?? [] : [];
|
|
420
|
+
switch (B(r) || (r = [r]), n) {
|
|
421
|
+
case "if":
|
|
422
|
+
case "?:":
|
|
423
|
+
for (let e = 0; e < r.length - 1; e += 2) if (await K(await G(r[e], t))) return G(r[e + 1], t);
|
|
424
|
+
return r.length % 2 == 1 ? G(r[r.length - 1], t) : null;
|
|
425
|
+
case "and": {
|
|
426
|
+
let e = null;
|
|
427
|
+
for (let n of r) if (e = await G(n, t), !await K(e)) return e;
|
|
428
|
+
return e;
|
|
429
|
+
}
|
|
430
|
+
case "or": {
|
|
431
|
+
let e = null;
|
|
432
|
+
for (let n of r) if (e = await G(n, t), await K(e)) return e;
|
|
433
|
+
return e;
|
|
434
|
+
}
|
|
435
|
+
case "map": {
|
|
436
|
+
let e = await G(r[0], t);
|
|
437
|
+
return B(e) ? await Promise.all(e.map((e) => G(r[1], e))) : [];
|
|
438
|
+
}
|
|
439
|
+
case "filter": {
|
|
440
|
+
let e = await G(r[0], t);
|
|
441
|
+
return B(e) ? (await Promise.all(e.map(async (e) => ({
|
|
442
|
+
item: e,
|
|
443
|
+
shouldInclude: await K(await G(r[1], e))
|
|
444
|
+
})))).filter(({ shouldInclude: e }) => e).map(({ item: e }) => e) : [];
|
|
445
|
+
}
|
|
446
|
+
case "reduce": {
|
|
447
|
+
let e = await G(r[0], t);
|
|
448
|
+
if (!B(e)) return r.length > 2 ? await G(r[2], t) : null;
|
|
449
|
+
let n = r[1], i = r.length > 2 ? await G(r[2], t) : null;
|
|
450
|
+
for (let t of e) i = await G(n, {
|
|
451
|
+
current: t,
|
|
452
|
+
accumulator: i
|
|
453
|
+
});
|
|
454
|
+
return i;
|
|
455
|
+
}
|
|
456
|
+
case "all": {
|
|
457
|
+
let e = await G(r[0], t);
|
|
458
|
+
if (!B(e) || e.length === 0) return !1;
|
|
459
|
+
for (let t of e) if (!await K(await G(r[1], t))) return !1;
|
|
460
|
+
return !0;
|
|
461
|
+
}
|
|
462
|
+
case "some": {
|
|
463
|
+
let e = await G(r[0], t);
|
|
464
|
+
if (!B(e)) return !1;
|
|
465
|
+
for (let t of e) if (await K(await G(r[1], t))) return !0;
|
|
466
|
+
return !1;
|
|
467
|
+
}
|
|
468
|
+
case "none": {
|
|
469
|
+
let e = await G(r[0], t);
|
|
470
|
+
if (!B(e)) return !0;
|
|
471
|
+
for (let t of e) if (await K(await G(r[1], t))) return !1;
|
|
472
|
+
return !0;
|
|
473
|
+
}
|
|
474
|
+
case "catch": try {
|
|
475
|
+
return await G(r[0], t);
|
|
476
|
+
} catch (e) {
|
|
477
|
+
return H(e) ? await G(e, t) : r[1] ? await G(r[1], e) : e instanceof Error ? e.message : e;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
let i = await Promise.all(r.map((e) => G(e, t))), a = n ? we[n] : void 0;
|
|
481
|
+
if (!a) throw Error(`Unrecognized operation ${n}`);
|
|
482
|
+
return a.apply(t, i);
|
|
212
483
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
}
|
|
484
|
+
async function K(e) {
|
|
485
|
+
return V(e) ? K(await e) : !(Array.isArray(e) && e.length === 0) && !!e;
|
|
486
|
+
}
|
|
487
|
+
function Te(e) {
|
|
488
|
+
return Object.keys(e)[0];
|
|
489
|
+
}
|
|
490
|
+
//#endregion
|
|
491
|
+
//#region src/lifecycle/rules-logic.ts
|
|
492
|
+
var Ee = I(({ client: e }) => O({
|
|
493
|
+
source: {
|
|
494
|
+
stateSnapshot: e.stateSnapshotStore,
|
|
495
|
+
predicates: e.predicates.listStore,
|
|
496
|
+
actions: e.actions.listStore,
|
|
497
|
+
features: e.features.listStore,
|
|
498
|
+
responses: e.responses.getAllStore
|
|
499
|
+
},
|
|
500
|
+
effect: async ({ stateSnapshot: e, predicates: t, actions: n, features: r, responses: i }, { rule: a, context: o }) => {
|
|
501
|
+
let s = t.reduce((t, n) => (t[n.name] = async (...t) => await n.predicate({
|
|
502
|
+
...e,
|
|
503
|
+
args: t
|
|
504
|
+
}), t), {}), c = n.reduce((t, n) => (t[n.key] = async (...t) => await n.action({
|
|
505
|
+
...e,
|
|
506
|
+
args: t
|
|
507
|
+
}, null) ?? void 0, t), {}), l = r.reduce((e, t) => (e[t.id] = async () => {
|
|
508
|
+
let { bucket: e } = await t.getBucket();
|
|
509
|
+
return e;
|
|
510
|
+
}, e), {});
|
|
511
|
+
return await G(a, {
|
|
512
|
+
responses: i,
|
|
513
|
+
location: typeof e.location == "object" ? {
|
|
514
|
+
hash: e.location.hash,
|
|
515
|
+
host: e.location.host,
|
|
516
|
+
hostname: e.location.hostname,
|
|
517
|
+
href: e.location.href,
|
|
518
|
+
origin: e.location.origin,
|
|
519
|
+
pathname: e.location.pathname,
|
|
520
|
+
port: e.location.port,
|
|
521
|
+
protocol: e.location.protocol,
|
|
522
|
+
search: e.location.search
|
|
523
|
+
} : void 0,
|
|
524
|
+
predicates: s,
|
|
525
|
+
actions: c,
|
|
526
|
+
features: l,
|
|
527
|
+
...o
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
}));
|
|
531
|
+
function De(e) {
|
|
532
|
+
return L(Ee, e);
|
|
533
|
+
}
|
|
534
|
+
//#endregion
|
|
535
|
+
//#region src/ping.ts
|
|
536
|
+
var Oe = 6e3, ke = E("last_ping", "global"), Ae = async (e) => {
|
|
216
537
|
try {
|
|
217
|
-
let t = Date.now(), n =
|
|
218
|
-
if (n.isSet() && (r = n.json() ?? 0), r && t - r <
|
|
538
|
+
let t = Date.now(), n = w.get(ke), r = 0;
|
|
539
|
+
if (n.isSet() && (r = n.json() ?? 0), r && t - r < Oe) return !0;
|
|
219
540
|
let i = {
|
|
220
541
|
projectId: e.projectId,
|
|
221
542
|
path: window.location.pathname
|
|
222
543
|
}, a = {}, o = document.getElementById("picked_script")?.dataset.verceltoken;
|
|
223
544
|
o && (a["x-vercel-protection-bypass"] = o);
|
|
224
|
-
let s = (await
|
|
545
|
+
let s = (await D(e.apiUrl, "ping", i, a)).ok;
|
|
225
546
|
return s && n.set(t), s;
|
|
226
547
|
} catch {
|
|
227
548
|
return !1;
|
|
228
549
|
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
550
|
+
}, q = j("lifecycle"), je = I(({ client: e }) => {
|
|
551
|
+
let t = q.store(!1), r = P(void 0, {
|
|
552
|
+
skipVoid: !1,
|
|
553
|
+
domain: q
|
|
554
|
+
}), i = P(void 0, {
|
|
555
|
+
skipVoid: !1,
|
|
556
|
+
domain: q
|
|
557
|
+
}), a = q.store("idle"), o = q.store([]), s = P(void 0, {
|
|
558
|
+
skipVoid: !1,
|
|
559
|
+
domain: q
|
|
560
|
+
}), c = P(void 0, {
|
|
561
|
+
skipVoid: !1,
|
|
562
|
+
domain: q
|
|
563
|
+
}), l = N(), u = N(), d = N(), p = N(), m = N(), h = N();
|
|
564
|
+
o.on(p, (e, t) => [...e, t]), s.on(m, (e, t) => t), c.on(h, (e, t) => t), t.on(u, () => !0);
|
|
565
|
+
let g = M(() => {
|
|
566
|
+
Ae(e);
|
|
567
|
+
}), _ = M(async () => {
|
|
568
|
+
await ee();
|
|
569
|
+
}), v = M(async () => {
|
|
570
|
+
await ce(e);
|
|
571
|
+
}), y = O({ effect: v }), b = O({
|
|
572
|
+
source: o,
|
|
573
|
+
effect: async (e) => {
|
|
574
|
+
for (let t of e) await t();
|
|
575
|
+
}
|
|
576
|
+
}), x = O({
|
|
577
|
+
source: s,
|
|
578
|
+
effect: async (t) => t === void 0 ? !0 : typeof t == "boolean" ? t : await n(e, t) === !0
|
|
579
|
+
}), S = O({
|
|
580
|
+
source: c,
|
|
581
|
+
effect: async (t) => t === void 0 ? !0 : typeof t == "boolean" ? t : await n(e, t) === !0
|
|
582
|
+
}), C = F({
|
|
583
|
+
clock: l,
|
|
584
|
+
filter: () => f()
|
|
585
|
+
});
|
|
586
|
+
F({
|
|
587
|
+
clock: C,
|
|
588
|
+
fn: () => "starting",
|
|
589
|
+
target: a
|
|
590
|
+
}), F({
|
|
591
|
+
clock: C,
|
|
592
|
+
target: g
|
|
593
|
+
}), F({
|
|
594
|
+
clock: C,
|
|
595
|
+
target: b
|
|
596
|
+
}), F({
|
|
597
|
+
clock: C,
|
|
598
|
+
target: _
|
|
599
|
+
}), F({
|
|
600
|
+
clock: b.done,
|
|
601
|
+
target: x
|
|
602
|
+
}), F({
|
|
603
|
+
clock: x.doneData,
|
|
604
|
+
target: r
|
|
605
|
+
}), F({
|
|
606
|
+
clock: S.doneData,
|
|
607
|
+
target: i
|
|
608
|
+
}), F({
|
|
609
|
+
clock: x.doneData,
|
|
610
|
+
filter: (e) => e,
|
|
611
|
+
target: S
|
|
612
|
+
}), F({
|
|
613
|
+
clock: S.doneData,
|
|
614
|
+
target: e.session.setIsUser
|
|
615
|
+
}), F({
|
|
616
|
+
clock: S.doneData,
|
|
617
|
+
fn: (e) => ({
|
|
618
|
+
type: "user_decide",
|
|
619
|
+
value: e
|
|
620
|
+
}),
|
|
621
|
+
target: e.eventBus
|
|
622
|
+
}), F({
|
|
623
|
+
clock: x.doneData,
|
|
624
|
+
filter: (e) => !e,
|
|
625
|
+
fn: () => void 0,
|
|
626
|
+
target: d
|
|
627
|
+
}), F({
|
|
628
|
+
clock: S.doneData,
|
|
629
|
+
fn: () => void 0,
|
|
630
|
+
target: d
|
|
631
|
+
}), F({
|
|
632
|
+
clock: d,
|
|
633
|
+
fn: () => ({ type: "initialize" }),
|
|
634
|
+
target: e.eventBus
|
|
635
|
+
});
|
|
636
|
+
let w = P(!1).on(_.done, () => !0), T = P(!1).on(d, () => !0), E = P(!1).on(y.done, () => !0), D = k(r, i, (e, t) => e === !0 && t === !0);
|
|
637
|
+
return F({
|
|
638
|
+
clock: d,
|
|
639
|
+
source: D,
|
|
640
|
+
filter: (e) => e,
|
|
641
|
+
fn: () => void 0,
|
|
642
|
+
target: v
|
|
643
|
+
}), F({
|
|
644
|
+
clock: k(w, T, D, (e, t, n) => e && t && n),
|
|
645
|
+
filter: (e) => e,
|
|
646
|
+
fn: () => void 0,
|
|
647
|
+
target: y
|
|
648
|
+
}), F({
|
|
649
|
+
clock: k(w, T, D, E, (e, t, n, r) => e && t && (!n || r)),
|
|
650
|
+
filter: (e) => e,
|
|
651
|
+
fn: () => void 0,
|
|
652
|
+
target: u
|
|
653
|
+
}), F({
|
|
654
|
+
clock: u,
|
|
655
|
+
fn: () => "ready",
|
|
656
|
+
target: a
|
|
657
|
+
}), F({
|
|
658
|
+
clock: u,
|
|
659
|
+
fn: () => ({ type: "ready" }),
|
|
660
|
+
target: e.eventBus
|
|
661
|
+
}), F({
|
|
662
|
+
clock: u,
|
|
663
|
+
source: e.session.store,
|
|
664
|
+
fn: ({ id: e, isUser: t, identifiers: n }) => ({
|
|
665
|
+
type: "session",
|
|
666
|
+
id: e,
|
|
667
|
+
isUser: t,
|
|
668
|
+
identifiers: n
|
|
669
|
+
}),
|
|
670
|
+
target: e.eventBus
|
|
671
|
+
}), F({
|
|
672
|
+
clock: [
|
|
673
|
+
b.fail,
|
|
674
|
+
x.fail,
|
|
675
|
+
S.fail,
|
|
676
|
+
v.fail,
|
|
677
|
+
y.fail,
|
|
678
|
+
_.fail
|
|
679
|
+
],
|
|
680
|
+
fn: () => "failed",
|
|
681
|
+
target: a
|
|
682
|
+
}), {
|
|
683
|
+
start: l,
|
|
684
|
+
readyStore: t,
|
|
685
|
+
preconditionPassedStore: r,
|
|
686
|
+
conditionPassedStore: i,
|
|
687
|
+
lifecycleStageStore: a,
|
|
688
|
+
registerPluginStartHook: p,
|
|
689
|
+
setPrecondition: m,
|
|
690
|
+
setCondition: h
|
|
241
691
|
};
|
|
242
|
-
|
|
692
|
+
});
|
|
693
|
+
function Me(e) {
|
|
694
|
+
return L(je, e);
|
|
243
695
|
}
|
|
244
696
|
//#endregion
|
|
245
697
|
//#region src/entities/predicate/predicate.ts
|
|
246
|
-
var
|
|
247
|
-
let t =
|
|
698
|
+
var Ne = j("predicate"), Pe = I(({ client: e }) => {
|
|
699
|
+
let t = Ne.store({}), n = A(t, { register(e, t) {
|
|
248
700
|
return {
|
|
249
701
|
...e,
|
|
250
702
|
[t.name]: {
|
|
@@ -252,85 +704,103 @@ var be = D("predicate"), xe = M(({ client: e }) => {
|
|
|
252
704
|
predicate: t.predicate
|
|
253
705
|
}
|
|
254
706
|
};
|
|
255
|
-
} });
|
|
256
|
-
|
|
257
|
-
|
|
707
|
+
} }), i = N();
|
|
708
|
+
F({
|
|
709
|
+
clock: i,
|
|
710
|
+
source: t,
|
|
711
|
+
filter: (e, { name: t }) => e[t] !== void 0,
|
|
712
|
+
fn: (e, { name: t }) => `Predicate '${t}' already registered. Registering again will override the previous registration.`
|
|
713
|
+
}).watch((e) => /* @__PURE__ */ r("warn", e)), F({
|
|
714
|
+
clock: i,
|
|
715
|
+
fn: ({ name: e, predicate: t }) => Object.freeze({
|
|
258
716
|
name: e,
|
|
259
|
-
predicate:
|
|
260
|
-
})
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
717
|
+
predicate: t
|
|
718
|
+
}),
|
|
719
|
+
target: n.register
|
|
720
|
+
});
|
|
721
|
+
let a = t.map((e) => Object.values(e));
|
|
722
|
+
function o(e) {
|
|
264
723
|
return t.map((t) => t[e]?.predicate, { skipVoid: !1 });
|
|
265
724
|
}
|
|
266
|
-
function
|
|
267
|
-
let n =
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
725
|
+
function s(t) {
|
|
726
|
+
let n = P(() => void 0, { skipVoid: !1 }), r = O({
|
|
727
|
+
source: {
|
|
728
|
+
predicate: o(t),
|
|
729
|
+
snapshot: e.stateSnapshotStore
|
|
730
|
+
},
|
|
731
|
+
effect: ({ predicate: e, snapshot: t }) => {
|
|
732
|
+
if (e) return (...n) => e({
|
|
733
|
+
...t,
|
|
734
|
+
args: n
|
|
735
|
+
});
|
|
736
|
+
}
|
|
275
737
|
});
|
|
276
|
-
return
|
|
738
|
+
return F({
|
|
277
739
|
source: {
|
|
278
740
|
responses: e.responses.listStore,
|
|
279
741
|
fields: e.fields.listStore
|
|
280
742
|
},
|
|
281
743
|
target: r
|
|
282
|
-
}),
|
|
744
|
+
}), F({
|
|
283
745
|
clock: r.doneData,
|
|
284
746
|
filter: (e) => e !== void 0,
|
|
285
747
|
target: n
|
|
286
748
|
}), r(), n;
|
|
287
749
|
}
|
|
288
750
|
return {
|
|
289
|
-
register:
|
|
290
|
-
getByName:
|
|
291
|
-
listStore:
|
|
292
|
-
getEvokablePredicate:
|
|
751
|
+
register: i,
|
|
752
|
+
getByName: o,
|
|
753
|
+
listStore: a,
|
|
754
|
+
getEvokablePredicate: s
|
|
293
755
|
};
|
|
294
756
|
});
|
|
295
|
-
function
|
|
296
|
-
return
|
|
757
|
+
function Fe(e) {
|
|
758
|
+
return L(Pe, e);
|
|
297
759
|
}
|
|
298
|
-
var
|
|
299
|
-
n.register(
|
|
300
|
-
|
|
301
|
-
|
|
760
|
+
var Ie = (e, t, n) => {
|
|
761
|
+
n.register({
|
|
762
|
+
name: e,
|
|
763
|
+
predicate: t
|
|
764
|
+
});
|
|
765
|
+
}, Le = j("feature"), Re = I(({ client: e }) => {
|
|
766
|
+
let t = Le.store({}), n = Le.store([]), i = A(t, { register(e, t) {
|
|
302
767
|
return {
|
|
303
768
|
...e,
|
|
304
769
|
[t.id]: t.feature
|
|
305
770
|
};
|
|
306
|
-
} });
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
771
|
+
} }), a = N();
|
|
772
|
+
F({
|
|
773
|
+
clock: a,
|
|
774
|
+
source: t,
|
|
775
|
+
filter: (e, { id: t }) => e[t] !== void 0,
|
|
776
|
+
fn: (e, { id: t }) => `Feature '${t}' already registered. Registering again will override the previous registration.`
|
|
777
|
+
}).watch((e) => /* @__PURE__ */ r("warn", e)), F({
|
|
778
|
+
clock: a,
|
|
779
|
+
fn: ({ id: e, feature: t }) => Object.freeze({
|
|
310
780
|
id: e,
|
|
311
781
|
feature: {
|
|
312
|
-
|
|
313
|
-
|
|
782
|
+
id: e,
|
|
783
|
+
feature: {
|
|
784
|
+
...t,
|
|
785
|
+
id: e
|
|
786
|
+
}
|
|
314
787
|
}
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
}));
|
|
320
|
-
}
|
|
321
|
-
let a = O(async ({ id: e, key: t, storage: n = "local" }) => {
|
|
322
|
-
let r = S(`feature:${e}:${t}`, "global"), i = (n === "session" ? x : b).get(r).boolean();
|
|
788
|
+
}),
|
|
789
|
+
target: i.register
|
|
790
|
+
});
|
|
791
|
+
let o = M(async ({ id: e, key: t, storage: n = "local" }) => {
|
|
792
|
+
let r = E(`feature:${e}:${t}`, "global"), i = (n === "session" ? T : w).get(r).boolean();
|
|
323
793
|
return i === null ? null : {
|
|
324
794
|
id: e,
|
|
325
795
|
key: t,
|
|
326
796
|
bucket: i,
|
|
327
797
|
storage: n
|
|
328
798
|
};
|
|
329
|
-
}),
|
|
799
|
+
}), s = M((e) => {
|
|
330
800
|
if (!e) return null;
|
|
331
|
-
let t =
|
|
332
|
-
(e.storage === "session" ?
|
|
333
|
-
}),
|
|
801
|
+
let t = E(`feature:${e.id}:${e.key}`, "global");
|
|
802
|
+
(e.storage === "session" ? T : w).set(t, e.bucket);
|
|
803
|
+
}), c = /* @__PURE__ */ new Map(), l = O({
|
|
334
804
|
source: {
|
|
335
805
|
allFeaturesStore: t,
|
|
336
806
|
resolvedFeaturesStore: n
|
|
@@ -340,9 +810,9 @@ var Ce = (e, t, n) => {
|
|
|
340
810
|
if (a) return a;
|
|
341
811
|
let o = e[n];
|
|
342
812
|
if (!o) throw Error(`Feature with id '${n}' not found`);
|
|
343
|
-
let
|
|
344
|
-
if (
|
|
345
|
-
let e = await
|
|
813
|
+
let s = c.get(`${n}:${i}`);
|
|
814
|
+
if (s !== void 0) {
|
|
815
|
+
let e = await s;
|
|
346
816
|
return {
|
|
347
817
|
id: o.id,
|
|
348
818
|
bucket: e,
|
|
@@ -351,7 +821,7 @@ var Ce = (e, t, n) => {
|
|
|
351
821
|
};
|
|
352
822
|
}
|
|
353
823
|
let l = r();
|
|
354
|
-
|
|
824
|
+
c.set(`${n}:${i}`, l);
|
|
355
825
|
let u = await l;
|
|
356
826
|
return {
|
|
357
827
|
id: o.id,
|
|
@@ -361,8 +831,8 @@ var Ce = (e, t, n) => {
|
|
|
361
831
|
};
|
|
362
832
|
}
|
|
363
833
|
});
|
|
364
|
-
|
|
365
|
-
clock:
|
|
834
|
+
F({
|
|
835
|
+
clock: i.register,
|
|
366
836
|
fn: (e) => {
|
|
367
837
|
let { id: t, feature: n } = e;
|
|
368
838
|
return {
|
|
@@ -371,10 +841,10 @@ var Ce = (e, t, n) => {
|
|
|
371
841
|
storage: n.feature.storage
|
|
372
842
|
};
|
|
373
843
|
},
|
|
374
|
-
target:
|
|
375
|
-
}),
|
|
844
|
+
target: o
|
|
845
|
+
}), F({
|
|
376
846
|
source: t,
|
|
377
|
-
clock:
|
|
847
|
+
clock: l.doneData,
|
|
378
848
|
fn: (e, t) => {
|
|
379
849
|
let { id: n, bucket: r, storage: i } = t, a = e[n]?.feature.key;
|
|
380
850
|
return a ? {
|
|
@@ -384,9 +854,9 @@ var Ce = (e, t, n) => {
|
|
|
384
854
|
storage: i
|
|
385
855
|
} : null;
|
|
386
856
|
},
|
|
387
|
-
target:
|
|
857
|
+
target: s
|
|
388
858
|
});
|
|
389
|
-
let
|
|
859
|
+
let u = k({
|
|
390
860
|
allFeaturesStore: t,
|
|
391
861
|
resolvedFeaturesStore: n
|
|
392
862
|
}).map(({ allFeaturesStore: e, resolvedFeaturesStore: t }) => Object.values(e).map((e) => {
|
|
@@ -404,12 +874,12 @@ var Ce = (e, t, n) => {
|
|
|
404
874
|
id: e.id,
|
|
405
875
|
name: e.feature.name,
|
|
406
876
|
key: e.feature.key,
|
|
407
|
-
getBucket: async () => await
|
|
877
|
+
getBucket: async () => await l(e.feature),
|
|
408
878
|
isResolved: !1
|
|
409
879
|
};
|
|
410
880
|
}));
|
|
411
|
-
|
|
412
|
-
clock:
|
|
881
|
+
F({
|
|
882
|
+
clock: l.doneData,
|
|
413
883
|
source: { resolvedFeatures: n },
|
|
414
884
|
filter: ({ resolvedFeatures: e }, { id: t, key: n }) => !e.some((e) => e.id === t && e.key === n),
|
|
415
885
|
fn: (e, t) => t,
|
|
@@ -417,135 +887,106 @@ var Ce = (e, t, n) => {
|
|
|
417
887
|
type: "feature_decide",
|
|
418
888
|
feature: e
|
|
419
889
|
}))
|
|
420
|
-
}),
|
|
421
|
-
clock: [
|
|
890
|
+
}), F({
|
|
891
|
+
clock: [o.doneData, l.doneData],
|
|
422
892
|
source: n,
|
|
423
893
|
fn: (e, t) => !t || e.some((e) => e.id === t.id && e.key === t.key) ? e : [...e, t],
|
|
424
894
|
target: n
|
|
425
895
|
});
|
|
426
|
-
function u(e) {
|
|
427
|
-
return l.map((t) => t.find((t) => t.id === e));
|
|
428
|
-
}
|
|
429
896
|
function d(e) {
|
|
430
|
-
return
|
|
897
|
+
return u.map((t) => t.find((t) => t.id === e));
|
|
431
898
|
}
|
|
432
899
|
function f(e) {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
900
|
+
return t.map((t) => t[e], { skipVoid: !1 });
|
|
901
|
+
}
|
|
902
|
+
function p(e) {
|
|
903
|
+
let t = P(async () => void 0, { skipVoid: !1 }), r = O({
|
|
904
|
+
source: d(e),
|
|
905
|
+
effect: async (e) => {
|
|
906
|
+
if (e) return async () => (await e.getBucket()).bucket;
|
|
907
|
+
}
|
|
436
908
|
});
|
|
437
|
-
return
|
|
909
|
+
return F({
|
|
438
910
|
source: n,
|
|
439
911
|
filter: (t) => t.some((t) => t.id === e),
|
|
440
912
|
target: r
|
|
441
|
-
}),
|
|
913
|
+
}), F({
|
|
442
914
|
clock: r.doneData,
|
|
443
915
|
filter: (e) => e !== void 0,
|
|
444
916
|
target: t
|
|
445
917
|
}), r(), t;
|
|
446
918
|
}
|
|
447
919
|
return {
|
|
448
|
-
register:
|
|
449
|
-
getById:
|
|
450
|
-
getByName:
|
|
451
|
-
listStore:
|
|
452
|
-
getEvokableFeature:
|
|
920
|
+
register: a,
|
|
921
|
+
getById: d,
|
|
922
|
+
getByName: f,
|
|
923
|
+
listStore: u,
|
|
924
|
+
getEvokableFeature: p
|
|
453
925
|
};
|
|
454
926
|
});
|
|
455
|
-
function
|
|
456
|
-
return
|
|
927
|
+
function ze(e) {
|
|
928
|
+
return L(Re, e);
|
|
457
929
|
}
|
|
458
|
-
var
|
|
459
|
-
n.register(
|
|
460
|
-
|
|
461
|
-
|
|
930
|
+
var Be = (e, t, n) => {
|
|
931
|
+
n.register({
|
|
932
|
+
id: e,
|
|
933
|
+
feature: t
|
|
934
|
+
});
|
|
935
|
+
}, J = j("history");
|
|
936
|
+
function Y(e, t) {
|
|
462
937
|
return {
|
|
463
|
-
id:
|
|
464
|
-
node:
|
|
938
|
+
id: ne(`history-entry-${Date.now()}-${Math.random()}}`),
|
|
939
|
+
node: t,
|
|
465
940
|
at: Date.now(),
|
|
466
|
-
|
|
467
|
-
experienceId: t
|
|
941
|
+
experienceId: e
|
|
468
942
|
};
|
|
469
943
|
}
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
break;
|
|
484
|
-
}
|
|
485
|
-
let r = K(t.instanceId, t.experienceId, t.node);
|
|
486
|
-
return n === -1 ? [...e, r] : e.map((e, t) => t === n ? r : e);
|
|
487
|
-
}), e.on(r, (e, { instanceId: t }) => {
|
|
488
|
-
let n = 0, r = -1;
|
|
489
|
-
for (let i = e.length - 1; i >= 0; i--) {
|
|
490
|
-
let a = e[i];
|
|
491
|
-
if (!(a?.instanceId !== t || !v(a.node)) && (n += 1, n === 2)) {
|
|
492
|
-
r = i;
|
|
944
|
+
var Ve = I(() => {
|
|
945
|
+
let e = J.store({ entries: [] }), t = J.event(), n = J.event(), r = J.event(), i = J.event();
|
|
946
|
+
e.on(t, (e, t) => ({ entries: [...e.entries, Y(t.experienceId, t.node)] })), e.on(n, (e, t) => ({ entries: [...e.entries.slice(0, -1), Y(t.experienceId, t.node)] })), e.on(i, (e, t) => t);
|
|
947
|
+
function a(e, t) {
|
|
948
|
+
let n = {
|
|
949
|
+
lastStepIndex: -1,
|
|
950
|
+
secondLastStepIndex: -1
|
|
951
|
+
};
|
|
952
|
+
for (let r = e.length - 1; r >= 0; r--) {
|
|
953
|
+
let i = e[r], a = i?.node;
|
|
954
|
+
if (!(!a || !v(a)) && !(t && i.experienceId !== t)) if (n.lastStepIndex === -1) n.lastStepIndex = r;
|
|
955
|
+
else {
|
|
956
|
+
n.secondLastStepIndex = r;
|
|
493
957
|
break;
|
|
494
958
|
}
|
|
495
959
|
}
|
|
496
|
-
return r === -1 ? e : e.filter((e, n) => e.instanceId !== t || n <= r);
|
|
497
|
-
}), e.on(i, (e, { snapshots: t }) => {
|
|
498
|
-
let n = [];
|
|
499
|
-
for (let e of Object.values(t)) n.push(...e);
|
|
500
960
|
return n;
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
let t =
|
|
504
|
-
|
|
505
|
-
let e = t[n.experienceId];
|
|
506
|
-
e ? e.push(n) : t[n.experienceId] = [n];
|
|
507
|
-
}
|
|
508
|
-
return t;
|
|
509
|
-
});
|
|
510
|
-
return j({
|
|
511
|
-
clock: a,
|
|
512
|
-
source: s,
|
|
513
|
-
fn: (e, { instanceId: t, experienceId: n }) => De(e[n] ?? []).map((e) => ({
|
|
961
|
+
}
|
|
962
|
+
return e.on(r, (e, t) => {
|
|
963
|
+
let { secondLastStepIndex: n } = a(e.entries, t.experienceId), r = n === -1 ? e.entries : e.entries.slice(0, n + 1);
|
|
964
|
+
return {
|
|
514
965
|
...e,
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
at: Date.now()
|
|
518
|
-
})),
|
|
519
|
-
target: o
|
|
966
|
+
entries: r
|
|
967
|
+
};
|
|
520
968
|
}), {
|
|
521
969
|
push: t,
|
|
522
970
|
replace: n,
|
|
523
971
|
back: r,
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
entriesStore: e.map((e) => e),
|
|
527
|
-
snapshotStore: s
|
|
972
|
+
restore: i,
|
|
973
|
+
entriesStore: e.map((e) => e.entries)
|
|
528
974
|
};
|
|
529
975
|
});
|
|
530
|
-
function
|
|
531
|
-
return
|
|
976
|
+
function He() {
|
|
977
|
+
return L(Ve);
|
|
532
978
|
}
|
|
533
979
|
//#endregion
|
|
534
980
|
//#region src/utils/events.ts
|
|
535
|
-
var
|
|
536
|
-
let t =
|
|
537
|
-
return
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
}],
|
|
545
|
-
target: t
|
|
546
|
-
}), t;
|
|
547
|
-
}, Me = D("field"), Ne = M(() => {
|
|
548
|
-
let e = Me.store({}), t = E(e, {
|
|
981
|
+
var Ue = 0, We = (e) => {
|
|
982
|
+
let t = P([]);
|
|
983
|
+
return t.on(e, (e, t) => [...e, {
|
|
984
|
+
id: Ue++,
|
|
985
|
+
at: /* @__PURE__ */ new Date(),
|
|
986
|
+
payload: t
|
|
987
|
+
}]), t;
|
|
988
|
+
}, Ge = j("field"), Ke = I(() => {
|
|
989
|
+
let e = Ge.store({}), t = A(e, {
|
|
549
990
|
register(e, t) {
|
|
550
991
|
return {
|
|
551
992
|
...e,
|
|
@@ -563,39 +1004,43 @@ var Ae = 0, je = (e) => {
|
|
|
563
1004
|
function n(e) {
|
|
564
1005
|
t.register({ field: e });
|
|
565
1006
|
}
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
1007
|
+
let r = {};
|
|
1008
|
+
e.watch((e) => {
|
|
1009
|
+
r = e;
|
|
1010
|
+
});
|
|
1011
|
+
function i(e, n) {
|
|
1012
|
+
let i = Object.values(r).find((t) => t.key === e)?.key;
|
|
1013
|
+
i && t.updateByKey({
|
|
1014
|
+
fieldKey: i,
|
|
1015
|
+
updates: n
|
|
571
1016
|
});
|
|
572
1017
|
}
|
|
573
|
-
let
|
|
574
|
-
function
|
|
1018
|
+
let a = e.map((e) => Object.values(e));
|
|
1019
|
+
function o(t) {
|
|
575
1020
|
return e.map((e) => e[t] ?? null, { skipVoid: !1 });
|
|
576
1021
|
}
|
|
577
|
-
function
|
|
1022
|
+
function s(t) {
|
|
578
1023
|
return e.map((e) => Object.values(e).find((e) => e.key === t) ?? null, { skipVoid: !1 });
|
|
579
1024
|
}
|
|
580
|
-
function
|
|
1025
|
+
function c(t) {
|
|
581
1026
|
return e.map((e) => Object.values(e).find((e) => e.name === t) ?? null, { skipVoid: !1 });
|
|
582
1027
|
}
|
|
583
1028
|
return {
|
|
584
1029
|
register: n,
|
|
585
|
-
update:
|
|
586
|
-
getById:
|
|
587
|
-
getByKey:
|
|
588
|
-
listStore:
|
|
589
|
-
getByName:
|
|
1030
|
+
update: i,
|
|
1031
|
+
getById: o,
|
|
1032
|
+
getByKey: s,
|
|
1033
|
+
listStore: a,
|
|
1034
|
+
getByName: c
|
|
590
1035
|
};
|
|
591
1036
|
});
|
|
592
|
-
function
|
|
593
|
-
return
|
|
1037
|
+
function qe() {
|
|
1038
|
+
return L(Ke);
|
|
594
1039
|
}
|
|
595
1040
|
//#endregion
|
|
596
1041
|
//#region src/entities/step/step.ts
|
|
597
|
-
var
|
|
598
|
-
let e =
|
|
1042
|
+
var Je = j("step"), Ye = I(() => {
|
|
1043
|
+
let e = Je.store({}), t = A(e, { register(e, t) {
|
|
599
1044
|
return {
|
|
600
1045
|
...e,
|
|
601
1046
|
[t.step.id]: t.step
|
|
@@ -619,16 +1064,45 @@ var Fe = D("step"), Ie = M(() => {
|
|
|
619
1064
|
indexStore: e
|
|
620
1065
|
};
|
|
621
1066
|
});
|
|
622
|
-
function
|
|
623
|
-
return
|
|
1067
|
+
function Xe() {
|
|
1068
|
+
return L(Ye);
|
|
624
1069
|
}
|
|
625
|
-
function
|
|
1070
|
+
function Ze(e, t) {
|
|
1071
|
+
t.register(e);
|
|
1072
|
+
}
|
|
1073
|
+
//#endregion
|
|
1074
|
+
//#region src/entities/content/content.ts
|
|
1075
|
+
var Qe = j("content"), $e = I(() => {
|
|
1076
|
+
let e = Qe.store({}), t = A(e, { register(e, t) {
|
|
1077
|
+
return {
|
|
1078
|
+
...e,
|
|
1079
|
+
[t.content.id]: t.content
|
|
1080
|
+
};
|
|
1081
|
+
} });
|
|
1082
|
+
function n(e) {
|
|
1083
|
+
t.register({ content: e });
|
|
1084
|
+
}
|
|
1085
|
+
let r = e.map((e) => Object.values(e));
|
|
1086
|
+
function i(t) {
|
|
1087
|
+
return e.map((e) => e[t] ?? null, { skipVoid: !1 });
|
|
1088
|
+
}
|
|
1089
|
+
return {
|
|
1090
|
+
register: n,
|
|
1091
|
+
getById: i,
|
|
1092
|
+
listStore: r,
|
|
1093
|
+
indexStore: e
|
|
1094
|
+
};
|
|
1095
|
+
});
|
|
1096
|
+
function et() {
|
|
1097
|
+
return L($e);
|
|
1098
|
+
}
|
|
1099
|
+
function tt(e, t) {
|
|
626
1100
|
t.register(e);
|
|
627
1101
|
}
|
|
628
1102
|
//#endregion
|
|
629
1103
|
//#region src/entities/action/action.ts
|
|
630
|
-
var
|
|
631
|
-
let t =
|
|
1104
|
+
var nt = j("action"), rt = I(({ client: e }) => {
|
|
1105
|
+
let t = nt.store({}), n = A(t, { register(e, t) {
|
|
632
1106
|
return {
|
|
633
1107
|
...e,
|
|
634
1108
|
[t.key]: {
|
|
@@ -636,55 +1110,68 @@ var ze = D("action"), Be = M(({ client: e }) => {
|
|
|
636
1110
|
action: t.action
|
|
637
1111
|
}
|
|
638
1112
|
};
|
|
639
|
-
} });
|
|
640
|
-
|
|
641
|
-
|
|
1113
|
+
} }), i = N();
|
|
1114
|
+
F({
|
|
1115
|
+
clock: i,
|
|
1116
|
+
source: t,
|
|
1117
|
+
filter: (e, { key: t }) => e[t] !== void 0,
|
|
1118
|
+
fn: (e, { key: t }) => `Action '${t}' already registered. Registering again will override the previous registration.`
|
|
1119
|
+
}).watch((e) => /* @__PURE__ */ r("warn", e)), F({
|
|
1120
|
+
clock: i,
|
|
1121
|
+
fn: ({ key: e, action: t }) => Object.freeze({
|
|
642
1122
|
key: e,
|
|
643
|
-
action:
|
|
644
|
-
})
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
1123
|
+
action: t
|
|
1124
|
+
}),
|
|
1125
|
+
target: n.register
|
|
1126
|
+
});
|
|
1127
|
+
let a = t.map((e) => Object.values(e));
|
|
1128
|
+
function o(e) {
|
|
648
1129
|
return t.map((t) => t[e]?.action, { skipVoid: !1 });
|
|
649
1130
|
}
|
|
650
|
-
function
|
|
651
|
-
let r =
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
1131
|
+
function s(t, n) {
|
|
1132
|
+
let r = P(() => void 0, { skipVoid: !1 }), i = n ? { experience: n.experience } : null, a = O({
|
|
1133
|
+
source: {
|
|
1134
|
+
action: o(t),
|
|
1135
|
+
snapshot: e.stateSnapshotStore
|
|
1136
|
+
},
|
|
1137
|
+
effect: ({ action: e, snapshot: t }) => {
|
|
1138
|
+
if (e) return (...n) => e({
|
|
1139
|
+
...t,
|
|
1140
|
+
args: n
|
|
1141
|
+
}, i);
|
|
1142
|
+
}
|
|
659
1143
|
});
|
|
660
|
-
return
|
|
1144
|
+
return F({
|
|
661
1145
|
source: {
|
|
662
1146
|
responses: e.responses.listStore,
|
|
663
1147
|
fields: e.fields.listStore
|
|
664
1148
|
},
|
|
665
|
-
target:
|
|
666
|
-
}),
|
|
667
|
-
clock:
|
|
1149
|
+
target: a
|
|
1150
|
+
}), F({
|
|
1151
|
+
clock: a.doneData,
|
|
668
1152
|
filter: (e) => e !== void 0,
|
|
669
1153
|
target: r
|
|
670
|
-
}),
|
|
1154
|
+
}), a(), r;
|
|
671
1155
|
}
|
|
672
1156
|
return {
|
|
673
|
-
register:
|
|
674
|
-
getByKey:
|
|
675
|
-
listStore:
|
|
676
|
-
getEvokableAction:
|
|
1157
|
+
register: i,
|
|
1158
|
+
getByKey: o,
|
|
1159
|
+
listStore: a,
|
|
1160
|
+
getEvokableAction: s
|
|
677
1161
|
};
|
|
678
1162
|
});
|
|
679
|
-
function
|
|
680
|
-
return
|
|
1163
|
+
function it(e) {
|
|
1164
|
+
return L(rt, e);
|
|
681
1165
|
}
|
|
682
|
-
var
|
|
683
|
-
n.register(
|
|
1166
|
+
var at = (e, t, n) => {
|
|
1167
|
+
n.register({
|
|
1168
|
+
key: e,
|
|
1169
|
+
action: t
|
|
1170
|
+
});
|
|
684
1171
|
};
|
|
685
1172
|
//#endregion
|
|
686
1173
|
//#region src/entities/response/response-validation.ts
|
|
687
|
-
function
|
|
1174
|
+
function X(e, t, n, r) {
|
|
688
1175
|
return {
|
|
689
1176
|
fieldKey: e.key,
|
|
690
1177
|
userMessage: n,
|
|
@@ -692,62 +1179,62 @@ function q(e, t, n, r) {
|
|
|
692
1179
|
value: t
|
|
693
1180
|
};
|
|
694
1181
|
}
|
|
695
|
-
function
|
|
1182
|
+
function Z(e) {
|
|
696
1183
|
return e === null || e === "" || Array.isArray(e) && !e.length;
|
|
697
1184
|
}
|
|
698
|
-
function
|
|
1185
|
+
function ot(e) {
|
|
699
1186
|
return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || e === null;
|
|
700
1187
|
}
|
|
701
|
-
function
|
|
1188
|
+
function Q(e) {
|
|
702
1189
|
try {
|
|
703
1190
|
return JSON.stringify(e), !0;
|
|
704
1191
|
} catch {
|
|
705
1192
|
return !1;
|
|
706
1193
|
}
|
|
707
1194
|
}
|
|
708
|
-
function
|
|
1195
|
+
function st(e, t) {
|
|
709
1196
|
return t.find((t) => t.key === e) ?? null;
|
|
710
1197
|
}
|
|
711
|
-
function
|
|
1198
|
+
function ct(e, t) {
|
|
712
1199
|
return e.multiple && (typeof t == "string" || typeof t == "number" || typeof t == "boolean") ? [t] : t;
|
|
713
1200
|
}
|
|
714
|
-
function
|
|
715
|
-
if (e.type !== "object" ||
|
|
1201
|
+
function lt(e, t) {
|
|
1202
|
+
if (e.type !== "object" || Z(t)) return null;
|
|
716
1203
|
if (e.multiple) {
|
|
717
|
-
if (!Array.isArray(t)) return
|
|
1204
|
+
if (!Array.isArray(t)) return X(e, t, "This field expects multiple values", "Field expects an array of objects.");
|
|
718
1205
|
for (let n of t) {
|
|
719
|
-
if (typeof n != "object" || !n) return
|
|
720
|
-
if (!
|
|
1206
|
+
if (typeof n != "object" || !n) return X(e, t, "This field expects object values", "Field expects an array of objects, but received non-object value.");
|
|
1207
|
+
if (!Q(n)) return X(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
|
|
721
1208
|
}
|
|
722
1209
|
return null;
|
|
723
1210
|
}
|
|
724
|
-
return Array.isArray(t) ?
|
|
1211
|
+
return Array.isArray(t) ? X(e, t, "This field expects a single value", "Field expects a single object, not an array.") : typeof t != "object" || !t ? X(e, t, "This field expects an object value", "Field expects an object value.") : Q(t) ? null : X(e, t, "This field contains non-serializable data", "Field value contains non-JSON-serializable data (functions, circular references, etc.).");
|
|
725
1212
|
}
|
|
726
|
-
function
|
|
727
|
-
if (
|
|
1213
|
+
function ut(e, t) {
|
|
1214
|
+
if (Z(t) || !Array.isArray(e.options) || e.options.length === 0) return null;
|
|
728
1215
|
let n = Array.isArray(t) ? t : [t];
|
|
729
1216
|
if (e.type === "object") {
|
|
730
1217
|
let r = new Set(e.options.map((e) => JSON.stringify(e.value)));
|
|
731
|
-
return n.every((e) => r.has(JSON.stringify(e))) ? null :
|
|
1218
|
+
return n.every((e) => r.has(JSON.stringify(e))) ? null : X(e, t, "This field expects a valid option", "Field expects a valid option from the defined choices.");
|
|
732
1219
|
}
|
|
733
1220
|
let r = e.options.map((e) => e.value);
|
|
734
|
-
return n.every((e) => !
|
|
1221
|
+
return n.every((e) => !ot(e) || e === null ? !1 : r.includes(e)) ? null : X(e, t, "This field expects a valid option", `Field expects a valid option. Valid options are: ${r.join(", ")}`);
|
|
735
1222
|
}
|
|
736
|
-
async function
|
|
737
|
-
if (
|
|
738
|
-
let
|
|
1223
|
+
async function dt(t, n, r, i) {
|
|
1224
|
+
if (n.validation && !e(n.validation) && !Z(r)) {
|
|
1225
|
+
let e = i ? {
|
|
739
1226
|
$input: r,
|
|
740
1227
|
responses: i
|
|
741
|
-
} : { $input: r }, a = await
|
|
742
|
-
if (typeof a == "string") return
|
|
743
|
-
if (a === !1) return
|
|
1228
|
+
} : { $input: r }, a = await t(n.validation, e);
|
|
1229
|
+
if (typeof a == "string") return X(n, r, a, `Field validation resulted in an error: ${a}.`);
|
|
1230
|
+
if (a === !1) return X(n, r, "This field is invalid", "Field validation resulted in an unspecified error.");
|
|
744
1231
|
}
|
|
745
|
-
return
|
|
1232
|
+
return n.required && Z(r) ? X(n, r, "This field is required", "Field is required.") : !n.multiple && Array.isArray(r) && r.length > 1 ? X(n, r, "This field expects a single response", "Field expects a single response.") : null;
|
|
746
1233
|
}
|
|
747
1234
|
//#endregion
|
|
748
1235
|
//#region src/entities/response/response.ts
|
|
749
|
-
var
|
|
750
|
-
let
|
|
1236
|
+
var ft = j("response"), pt = I(({ client: e }) => {
|
|
1237
|
+
let t = ft.store({}), r = N(), i = N(), a = A(t, {
|
|
751
1238
|
register(e, t) {
|
|
752
1239
|
return {
|
|
753
1240
|
...e,
|
|
@@ -776,17 +1263,17 @@ var Ye = D("response"), Xe = M(({ client: e }) => {
|
|
|
776
1263
|
});
|
|
777
1264
|
} else a.registerBatch(e);
|
|
778
1265
|
}
|
|
779
|
-
let s = (
|
|
1266
|
+
let s = (t, r) => n(e, t, r), c = O({
|
|
780
1267
|
source: {
|
|
781
1268
|
allFields: e.fields.listStore,
|
|
782
|
-
existingResponses:
|
|
1269
|
+
existingResponses: t
|
|
783
1270
|
},
|
|
784
1271
|
effect: async ({ allFields: e, existingResponses: t }, n) => {
|
|
785
1272
|
let r = [], i = {}, a = {
|
|
786
1273
|
...t,
|
|
787
1274
|
...n
|
|
788
1275
|
}, o = Object.entries(n), c = await Promise.allSettled(o.map(async ([t, n]) => {
|
|
789
|
-
let o =
|
|
1276
|
+
let o = st(t, e);
|
|
790
1277
|
if (!o) {
|
|
791
1278
|
r.push({
|
|
792
1279
|
fieldKey: t,
|
|
@@ -796,17 +1283,17 @@ var Ye = D("response"), Xe = M(({ client: e }) => {
|
|
|
796
1283
|
});
|
|
797
1284
|
return;
|
|
798
1285
|
}
|
|
799
|
-
let c =
|
|
1286
|
+
let c = ct(o, n), l = await dt(s, o, c, a);
|
|
800
1287
|
if (l) {
|
|
801
1288
|
r.push(l);
|
|
802
1289
|
return;
|
|
803
1290
|
}
|
|
804
|
-
let u =
|
|
1291
|
+
let u = lt(o, c);
|
|
805
1292
|
if (u) {
|
|
806
1293
|
r.push(u);
|
|
807
1294
|
return;
|
|
808
1295
|
}
|
|
809
|
-
let d =
|
|
1296
|
+
let d = ut(o, c);
|
|
810
1297
|
if (d) {
|
|
811
1298
|
r.push(d);
|
|
812
1299
|
return;
|
|
@@ -834,8 +1321,8 @@ var Ye = D("response"), Xe = M(({ client: e }) => {
|
|
|
834
1321
|
async function l(e) {
|
|
835
1322
|
return c(e);
|
|
836
1323
|
}
|
|
837
|
-
let u =
|
|
838
|
-
source:
|
|
1324
|
+
let u = O({
|
|
1325
|
+
source: t,
|
|
839
1326
|
effect: async (e, t) => {
|
|
840
1327
|
let { responsesToCommit: n, validationErrors: r } = await c(t);
|
|
841
1328
|
return r.length ? { errors: r } : (a.registerBatch(n), { errors: [] });
|
|
@@ -844,14 +1331,14 @@ var Ye = D("response"), Xe = M(({ client: e }) => {
|
|
|
844
1331
|
async function d(e) {
|
|
845
1332
|
return u(e);
|
|
846
1333
|
}
|
|
847
|
-
let f =
|
|
1334
|
+
let f = t.map((e) => e), p = t.map((e) => Object.entries(e).map(([e, t]) => ({
|
|
848
1335
|
fieldKey: e,
|
|
849
1336
|
value: t
|
|
850
1337
|
})));
|
|
851
1338
|
function m(e) {
|
|
852
|
-
return
|
|
1339
|
+
return k({
|
|
853
1340
|
f: e,
|
|
854
|
-
s:
|
|
1341
|
+
s: t
|
|
855
1342
|
}, ({ f: e, s: t }) => {
|
|
856
1343
|
let n = e ? t[e.key] ?? null : null;
|
|
857
1344
|
return n === null ? e?.defaultValue !== void 0 && e.defaultValue !== null ? e.defaultValue : null : n;
|
|
@@ -866,10 +1353,10 @@ var Ye = D("response"), Xe = M(({ client: e }) => {
|
|
|
866
1353
|
function _(t) {
|
|
867
1354
|
return m(e.fields.getByName(t));
|
|
868
1355
|
}
|
|
869
|
-
return
|
|
1356
|
+
return F({
|
|
870
1357
|
clock: r,
|
|
871
1358
|
target: a.clearAll
|
|
872
|
-
}),
|
|
1359
|
+
}), F({
|
|
873
1360
|
clock: i,
|
|
874
1361
|
target: a.clear
|
|
875
1362
|
}), {
|
|
@@ -885,13 +1372,13 @@ var Ye = D("response"), Xe = M(({ client: e }) => {
|
|
|
885
1372
|
getByFieldName: _
|
|
886
1373
|
};
|
|
887
1374
|
});
|
|
888
|
-
function
|
|
889
|
-
return
|
|
1375
|
+
function mt(e) {
|
|
1376
|
+
return L(pt, e);
|
|
890
1377
|
}
|
|
891
1378
|
//#endregion
|
|
892
1379
|
//#region src/entities/condition/condition.ts
|
|
893
|
-
var
|
|
894
|
-
let e =
|
|
1380
|
+
var ht = j("condition"), gt = I(() => {
|
|
1381
|
+
let e = ht.store({}), t = A(e, { register(e, t) {
|
|
895
1382
|
return {
|
|
896
1383
|
...e,
|
|
897
1384
|
[t.condition.id]: t.condition
|
|
@@ -915,12 +1402,12 @@ var Qe = D("condition"), $e = M(() => {
|
|
|
915
1402
|
indexStore: e
|
|
916
1403
|
};
|
|
917
1404
|
});
|
|
918
|
-
function
|
|
919
|
-
return
|
|
1405
|
+
function _t() {
|
|
1406
|
+
return L(gt);
|
|
920
1407
|
}
|
|
921
1408
|
//#endregion
|
|
922
1409
|
//#region src/utils/api-url.ts
|
|
923
|
-
function
|
|
1410
|
+
function vt() {
|
|
924
1411
|
if (f()) {
|
|
925
1412
|
let e = [
|
|
926
1413
|
document.currentScript,
|
|
@@ -935,7 +1422,7 @@ function tt() {
|
|
|
935
1422
|
}
|
|
936
1423
|
//#endregion
|
|
937
1424
|
//#region src/utils/search-params.ts
|
|
938
|
-
function
|
|
1425
|
+
function yt() {
|
|
939
1426
|
if (!o()) return {};
|
|
940
1427
|
let e = new URLSearchParams(window.location.search), t = {}, n = /* @__PURE__ */ new Set();
|
|
941
1428
|
for (let [t] of e.entries()) t.startsWith("picked-") && n.add(t);
|
|
@@ -943,89 +1430,104 @@ function nt() {
|
|
|
943
1430
|
let n = r.replace("picked-", "");
|
|
944
1431
|
t[n] = e.getAll(r);
|
|
945
1432
|
}
|
|
946
|
-
let r =
|
|
947
|
-
if (n.size > 0)
|
|
1433
|
+
let r = E("s");
|
|
1434
|
+
if (n.size > 0) T.set(r, t);
|
|
948
1435
|
else {
|
|
949
|
-
let e =
|
|
1436
|
+
let e = T.get(r);
|
|
950
1437
|
if (e) return e.json() || {};
|
|
951
1438
|
}
|
|
952
1439
|
return t;
|
|
953
1440
|
}
|
|
954
1441
|
//#endregion
|
|
955
|
-
//#region src/
|
|
956
|
-
|
|
1442
|
+
//#region src/entities/session/session.ts
|
|
1443
|
+
var bt = E("session", "global");
|
|
1444
|
+
function xt() {
|
|
957
1445
|
return l() ? 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)}`;
|
|
958
1446
|
}
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
e
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
1447
|
+
function St() {
|
|
1448
|
+
if (!u()) return null;
|
|
1449
|
+
let e = w.get(bt);
|
|
1450
|
+
if (!e.isSet()) return null;
|
|
1451
|
+
try {
|
|
1452
|
+
return e.json();
|
|
1453
|
+
} catch {
|
|
1454
|
+
return null;
|
|
1455
|
+
}
|
|
1456
|
+
}
|
|
1457
|
+
var Ct = I(() => {
|
|
1458
|
+
let e = St(), t = { id: e?.id ?? xt() };
|
|
1459
|
+
e?.isUser !== void 0 && (t.isUser = e.isUser), e?.identifiers && Object.keys(e.identifiers).length > 0 && (t.identifiers = e.identifiers);
|
|
1460
|
+
let n = P(t), r = A(n, {
|
|
1461
|
+
setIsUser: (e, t) => ({
|
|
1462
|
+
...e,
|
|
1463
|
+
isUser: t
|
|
1464
|
+
}),
|
|
1465
|
+
setIdentifier: (e, { key: t, value: n }) => ({
|
|
1466
|
+
...e,
|
|
1467
|
+
identifiers: {
|
|
1468
|
+
...e.identifiers ?? {},
|
|
1469
|
+
[t]: n
|
|
1470
|
+
}
|
|
1471
|
+
}),
|
|
1472
|
+
removeIdentifier: (e, t) => {
|
|
1473
|
+
let n = e.identifiers;
|
|
1474
|
+
if (!n || !(t in n)) return e;
|
|
1475
|
+
let r = {};
|
|
1476
|
+
for (let [e, i] of Object.entries(n)) e !== t && (r[e] = i);
|
|
1477
|
+
let i = { id: e.id };
|
|
1478
|
+
return e.isUser !== void 0 && (i.isUser = e.isUser), Object.keys(r).length > 0 && (i.identifiers = r), i;
|
|
981
1479
|
}
|
|
1480
|
+
});
|
|
1481
|
+
return F({
|
|
1482
|
+
source: n,
|
|
1483
|
+
target: O({
|
|
1484
|
+
source: n,
|
|
1485
|
+
effect: (e) => {
|
|
1486
|
+
if (u()) try {
|
|
1487
|
+
w.get(bt).set(e);
|
|
1488
|
+
} catch {}
|
|
1489
|
+
}
|
|
1490
|
+
})
|
|
1491
|
+
}), {
|
|
1492
|
+
store: n,
|
|
1493
|
+
setIsUser: r.setIsUser,
|
|
1494
|
+
setIdentifier: r.setIdentifier,
|
|
1495
|
+
removeIdentifier: r.removeIdentifier
|
|
982
1496
|
};
|
|
983
|
-
|
|
984
|
-
|
|
1497
|
+
});
|
|
1498
|
+
function wt() {
|
|
1499
|
+
return L(Ct, void 0);
|
|
1500
|
+
}
|
|
985
1501
|
//#endregion
|
|
986
1502
|
//#region src/utils/picked-config.ts
|
|
987
|
-
function
|
|
1503
|
+
function Tt() {
|
|
988
1504
|
if (o()) return globalThis.window.pickedConfig;
|
|
989
1505
|
}
|
|
990
|
-
function
|
|
991
|
-
if (
|
|
992
|
-
let e = Z(), t = e?.organizationId, n = e?.projectId;
|
|
993
|
-
return t && n ? {
|
|
994
|
-
organizationId: t,
|
|
995
|
-
projectId: n
|
|
996
|
-
} : void 0;
|
|
1506
|
+
function Et() {
|
|
1507
|
+
if (o()) return Tt()?.projectId;
|
|
997
1508
|
}
|
|
998
|
-
function
|
|
1509
|
+
function Dt() {
|
|
999
1510
|
if (!f()) return;
|
|
1000
1511
|
let e = document.getElementById("picked_script") || document.querySelector("script#picked") || document.getElementById("cvly");
|
|
1001
|
-
if (
|
|
1002
|
-
let t = e.dataset.organizationid || e.getAttribute("organization-id"), n = e.dataset.projectid || e.getAttribute("project-id");
|
|
1003
|
-
return t && n ? {
|
|
1004
|
-
organizationId: t,
|
|
1005
|
-
projectId: n
|
|
1006
|
-
} : void 0;
|
|
1512
|
+
if (e) return e.dataset.projectid || e.getAttribute("project-id") || void 0;
|
|
1007
1513
|
}
|
|
1008
|
-
function
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
if (r) return r;
|
|
1016
|
-
let i = st();
|
|
1017
|
-
if (i) return i;
|
|
1018
|
-
throw Error("organizationId and projectId are required. You can provide them via one of:\n (1) createClient({ organizationId, projectId }) options;\n (2) window.pickedConfig = { organizationId, projectId };\n (3) a <script> tag with id 'picked_script', 'picked', or 'cvly' that includes data-organizationid/data-projectid (or organization-id/project-id) attributes.");
|
|
1514
|
+
function Ot(e) {
|
|
1515
|
+
if (e.projectId) return e.projectId;
|
|
1516
|
+
let t = Et();
|
|
1517
|
+
if (t) return t;
|
|
1518
|
+
let n = Dt();
|
|
1519
|
+
if (n) return n;
|
|
1520
|
+
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.");
|
|
1019
1521
|
}
|
|
1020
1522
|
//#endregion
|
|
1021
1523
|
//#region src/utils/render-string.ts
|
|
1022
|
-
function
|
|
1524
|
+
function $(e) {
|
|
1023
1525
|
return e == null || e === "" || Number.isNaN(e);
|
|
1024
1526
|
}
|
|
1025
|
-
var
|
|
1026
|
-
default: (e, t) =>
|
|
1027
|
-
append: (e, t) => t &&
|
|
1028
|
-
prepend: (e, t) => t &&
|
|
1527
|
+
var kt = {
|
|
1528
|
+
default: (e, t) => $(e) ? String(t ?? "") : String(e),
|
|
1529
|
+
append: (e, t) => t && !$(e) ? `${e} ${t}` : e,
|
|
1530
|
+
prepend: (e, t) => t && !$(e) ? `${t} ${e}` : e,
|
|
1029
1531
|
upper: (e) => typeof e == "string" ? e.toUpperCase() : e,
|
|
1030
1532
|
lower: (e) => typeof e == "string" ? e.toLowerCase() : e,
|
|
1031
1533
|
capitalize: (e) => typeof e == "string" ? e.charAt(0).toUpperCase() + e.slice(1) : e,
|
|
@@ -1043,24 +1545,24 @@ var lt = {
|
|
|
1043
1545
|
return e instanceof Set ? t.format(Array.from(e).map(String)) : e;
|
|
1044
1546
|
}
|
|
1045
1547
|
};
|
|
1046
|
-
function
|
|
1548
|
+
function At(e) {
|
|
1047
1549
|
return typeof e == "object" && !!e;
|
|
1048
1550
|
}
|
|
1049
|
-
function
|
|
1551
|
+
function jt(e, t) {
|
|
1050
1552
|
let n = t;
|
|
1051
|
-
for (let t of e.split(".")) if (
|
|
1553
|
+
for (let t of e.split(".")) if (At(n) && t in n) n = n[t];
|
|
1052
1554
|
else return;
|
|
1053
1555
|
return typeof n == "function" ? n() : n;
|
|
1054
1556
|
}
|
|
1055
|
-
function
|
|
1056
|
-
let n = e.split("|").map((e) => e.trim()), r =
|
|
1557
|
+
function Mt(e, t) {
|
|
1558
|
+
let n = e.split("|").map((e) => e.trim()), r = jt(n.shift() ?? "", t);
|
|
1057
1559
|
for (let e of n) {
|
|
1058
|
-
let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o =
|
|
1560
|
+
let [t, ...n] = e.split(":"), i = t?.trim() ?? "", a = n.join(":").trim().replaceAll(/(?:^['"]|['"]$)/g, ""), o = kt[i];
|
|
1059
1561
|
o && (r = o(r, a));
|
|
1060
1562
|
}
|
|
1061
|
-
return
|
|
1563
|
+
return $(r) ? "" : typeof r == "object" ? JSON.stringify(r) : String(r);
|
|
1062
1564
|
}
|
|
1063
|
-
function
|
|
1565
|
+
function Nt(e, t) {
|
|
1064
1566
|
let n = "", r = 0;
|
|
1065
1567
|
for (; r < e.length;) if (e[r] === "{" && e[r + 1] === "{") {
|
|
1066
1568
|
r += 2;
|
|
@@ -1072,93 +1574,80 @@ function pt(e, t) {
|
|
|
1072
1574
|
}
|
|
1073
1575
|
i += e[r++];
|
|
1074
1576
|
}
|
|
1075
|
-
n +=
|
|
1577
|
+
n += Mt(i.trim(), t);
|
|
1076
1578
|
} else n += e[r++];
|
|
1077
1579
|
return n;
|
|
1078
1580
|
}
|
|
1079
1581
|
//#endregion
|
|
1080
1582
|
//#region src/picked.ts
|
|
1081
|
-
var
|
|
1583
|
+
var Pt = class {
|
|
1082
1584
|
static logger = r;
|
|
1083
1585
|
options;
|
|
1084
|
-
|
|
1586
|
+
dataSource = null;
|
|
1587
|
+
contentLoader;
|
|
1085
1588
|
plugins = {};
|
|
1086
|
-
|
|
1087
|
-
eventBus = k();
|
|
1589
|
+
eventBus = N();
|
|
1088
1590
|
events;
|
|
1089
|
-
organizationId;
|
|
1090
1591
|
projectId;
|
|
1091
1592
|
apiUrl;
|
|
1092
1593
|
dashboardUrl;
|
|
1093
1594
|
documentationSiteUrl;
|
|
1094
|
-
session;
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1595
|
+
session = wt();
|
|
1596
|
+
searchParams = yt();
|
|
1597
|
+
history = He();
|
|
1598
|
+
components = he({ client: this });
|
|
1599
|
+
experienceInstances = b({ client: this });
|
|
1600
|
+
experiences = se({ client: this });
|
|
1601
|
+
frameworks = ye({ client: this });
|
|
1602
|
+
predicates = Fe({ client: this });
|
|
1603
|
+
features = ze({ client: this });
|
|
1604
|
+
conditions = _t();
|
|
1605
|
+
fields = qe();
|
|
1606
|
+
responses = mt({ client: this });
|
|
1607
|
+
steps = Xe();
|
|
1608
|
+
contents = et();
|
|
1609
|
+
actions = it({ client: this });
|
|
1610
|
+
stateSnapshotStore = Se({ client: this });
|
|
1611
|
+
evaluateRuleLogicFx = De({ client: this });
|
|
1612
|
+
start;
|
|
1613
|
+
readyStore;
|
|
1614
|
+
preconditionPassedStore;
|
|
1615
|
+
conditionPassedStore;
|
|
1616
|
+
lifecycleStageStore;
|
|
1617
|
+
lifecycle = Me({ client: this });
|
|
1618
|
+
renderStringFx = O({
|
|
1619
|
+
source: this.responses.listStore,
|
|
1620
|
+
effect: (e, { template: t, context: n }) => {
|
|
1621
|
+
let r = {};
|
|
1622
|
+
for (let t of e) r[t.fieldKey] = t.value;
|
|
1623
|
+
return Nt(t, {
|
|
1624
|
+
...n,
|
|
1625
|
+
responses: r
|
|
1626
|
+
});
|
|
1627
|
+
}
|
|
1628
|
+
});
|
|
1111
1629
|
constructor(e) {
|
|
1112
|
-
this.events =
|
|
1113
|
-
let { organizationId: t, projectId: n } = ct(e);
|
|
1114
|
-
this.organizationId = t, this.projectId = n, this.options = Object.freeze(e), this.apiUrl = e.apiUrl || tt(), this.dashboardUrl = e.dashboardUrl ?? "https://dashboard.picked.app", this.documentationSiteUrl = e.documentationSiteUrl ?? "https://docs.picked.app", this.session = at(), this.setupPlugins(), this.setupFeatures(), this.setupPredicates(), this.setupActions(), this.setupComponents(), this.precondition = e.precondition, this.condition = e.condition, this.eventBus({
|
|
1630
|
+
this.events = We(this.eventBus), this.projectId = Ot(e), this.options = Object.freeze(e), this.apiUrl = e.apiUrl || vt(), 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({
|
|
1115
1631
|
type: "load",
|
|
1116
|
-
version:
|
|
1632
|
+
version: te()
|
|
1117
1633
|
});
|
|
1118
1634
|
}
|
|
1119
|
-
start = () => {
|
|
1120
|
-
ye(this), (async () => {
|
|
1121
|
-
if (!f()) return;
|
|
1122
|
-
await this.runPluginStartHooks();
|
|
1123
|
-
let e = await this.evaluateGate(this.precondition);
|
|
1124
|
-
this.preconditionPassed = e;
|
|
1125
|
-
let t;
|
|
1126
|
-
e && (t = await this.evaluateGate(this.condition));
|
|
1127
|
-
let n = e && t === !0;
|
|
1128
|
-
if (typeof t == "boolean" && this.session) {
|
|
1129
|
-
let e = t;
|
|
1130
|
-
this.session.setIsUser(e), this.eventBus({
|
|
1131
|
-
type: "user_decide",
|
|
1132
|
-
value: e
|
|
1133
|
-
});
|
|
1134
|
-
}
|
|
1135
|
-
if (this.eventBus({ type: "initialize" }), n && I(this), await ne(), n && I(this), this.eventBus({ type: "ready" }), this.isReady = !0, this.session) {
|
|
1136
|
-
let { id: e, isUser: t, identifiers: n } = this.session;
|
|
1137
|
-
this.eventBus({
|
|
1138
|
-
type: "session",
|
|
1139
|
-
id: e,
|
|
1140
|
-
isUser: t,
|
|
1141
|
-
identifiers: n
|
|
1142
|
-
});
|
|
1143
|
-
}
|
|
1144
|
-
})();
|
|
1145
|
-
};
|
|
1146
1635
|
registerFramework = (e) => {
|
|
1147
|
-
|
|
1636
|
+
be(e, this.frameworks);
|
|
1148
1637
|
};
|
|
1149
1638
|
registerComponent = (e, t) => {
|
|
1150
|
-
|
|
1639
|
+
ge(e, t, this.components);
|
|
1151
1640
|
};
|
|
1152
1641
|
registerPlugin = (e) => {
|
|
1153
|
-
|
|
1642
|
+
ue(this, e, this.plugins);
|
|
1154
1643
|
let t = this.plugins[e.name];
|
|
1155
|
-
t?.onStart && this.
|
|
1644
|
+
t?.onStart && this.lifecycle.registerPluginStartHook(t.onStart);
|
|
1156
1645
|
};
|
|
1157
1646
|
registerFeature = (e, t) => {
|
|
1158
|
-
|
|
1647
|
+
Be(e, t, this.features);
|
|
1159
1648
|
};
|
|
1160
1649
|
registerPredicate = (e, t) => {
|
|
1161
|
-
|
|
1650
|
+
Ie(e, t, this.predicates);
|
|
1162
1651
|
};
|
|
1163
1652
|
registerCondition = (e) => {
|
|
1164
1653
|
this.conditions.register(e);
|
|
@@ -1167,15 +1656,17 @@ var $ = class {
|
|
|
1167
1656
|
this.fields.register(e);
|
|
1168
1657
|
};
|
|
1169
1658
|
registerStep = (e) => {
|
|
1170
|
-
|
|
1659
|
+
Ze(e, this.steps);
|
|
1660
|
+
};
|
|
1661
|
+
registerContent = (e) => {
|
|
1662
|
+
tt(e, this.contents);
|
|
1171
1663
|
};
|
|
1172
1664
|
registerAction = (e, t) => {
|
|
1173
|
-
|
|
1665
|
+
at(e, t, this.actions);
|
|
1174
1666
|
};
|
|
1175
1667
|
registerExperience = (e) => {
|
|
1176
|
-
e.component &&
|
|
1668
|
+
e.component && ge(`experience:${e.id}`, e.component, this.components), this.experiences.register(e);
|
|
1177
1669
|
};
|
|
1178
|
-
getStateSnapshot = () => U(this);
|
|
1179
1670
|
launchExperienceById = async (e, t) => {
|
|
1180
1671
|
this.experiences.launch({
|
|
1181
1672
|
id: e,
|
|
@@ -1194,12 +1685,6 @@ var $ = class {
|
|
|
1194
1685
|
openExperienceByKey = async (e) => {
|
|
1195
1686
|
this.experiences.open({ key: e });
|
|
1196
1687
|
};
|
|
1197
|
-
async runPluginStartHooks() {
|
|
1198
|
-
for (let e of this.pluginStartHooks) await e();
|
|
1199
|
-
}
|
|
1200
|
-
async evaluateGate(e) {
|
|
1201
|
-
return e === void 0 ? !0 : typeof e == "boolean" ? e : await t(this, e) === !0;
|
|
1202
|
-
}
|
|
1203
1688
|
setupPlugins() {
|
|
1204
1689
|
this.options.plugins?.forEach((e) => {
|
|
1205
1690
|
if (Array.isArray(e)) {
|
|
@@ -1262,30 +1747,23 @@ var $ = class {
|
|
|
1262
1747
|
});
|
|
1263
1748
|
}
|
|
1264
1749
|
getPluginConfig = (e) => this.plugins[e] ?? {};
|
|
1265
|
-
renderString = (e, t) => {
|
|
1266
|
-
let n = this.responses.listStore.getState().reduce((e, t) => (e[t.fieldKey] = t.value, e), {});
|
|
1267
|
-
return pt(e, {
|
|
1268
|
-
...t,
|
|
1269
|
-
responses: n
|
|
1270
|
-
});
|
|
1271
|
-
};
|
|
1272
1750
|
};
|
|
1273
1751
|
//#endregion
|
|
1274
1752
|
//#region src/entities/component/lazyComponent.ts
|
|
1275
|
-
function
|
|
1753
|
+
function Ft(e) {
|
|
1276
1754
|
return {
|
|
1277
1755
|
$$type: "lazy-component",
|
|
1278
1756
|
load: e
|
|
1279
1757
|
};
|
|
1280
1758
|
}
|
|
1281
|
-
function
|
|
1759
|
+
function It(e) {
|
|
1282
1760
|
return typeof e == "object" && !!e && "$$type" in e && e.$$type === "lazy-component";
|
|
1283
1761
|
}
|
|
1284
1762
|
//#endregion
|
|
1285
1763
|
//#region src/exports.ts
|
|
1286
|
-
var
|
|
1287
|
-
let t = new
|
|
1764
|
+
var Lt = (e) => {
|
|
1765
|
+
let t = new Pt(e);
|
|
1288
1766
|
return d(t), t;
|
|
1289
1767
|
};
|
|
1290
1768
|
//#endregion
|
|
1291
|
-
export {
|
|
1769
|
+
export { Pt as Picked, Lt as createClient, le as createPluginEffect, E as createStorageKey, n as evaluateRuleLogic, Tt as getPickedConfig, It as isLazyLoader, _ as isPickedRoot, Ft as lazyComponent, w as localStore, T as sessionStore, C as subscribe, m as supportsCookies, l as supportsCryptoRandomUUID, f as supportsDocument, s as supportsHistory, i as supportsIntersectionObserver, u as supportsLocalStorage, p as supportsLocation, a as supportsSessionStorage, c as supportsShadowRoot, h as supportsWebComponents, o as supportsWindow };
|