@picked/client 0.0.1-dev.1777856271317 → 0.0.1-dev.1777867216429

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.
Files changed (56) hide show
  1. package/dist/{api-DaHz97Mz.js → api-Xp22knXn.js} +1 -1
  2. package/dist/{api-dOWgI8zV.cjs → api-qBG8rsTJ.cjs} +1 -1
  3. package/dist/cjs/form/index.js +1 -1
  4. package/dist/cjs/index.js +2 -2
  5. package/dist/cjs/plugins/create-experience/index.js +1 -1
  6. package/dist/cjs/plugins/dynamic-experiences/index.js +1 -1
  7. package/dist/cjs/plugins/experience-browser-storage/index.js +1 -1
  8. package/dist/cjs/plugins/history-browser-storage/index.js +1 -1
  9. package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
  10. package/dist/cjs/server/index.js +1 -1
  11. package/dist/docs/api/authentication.md +376 -0
  12. package/dist/docs/api/authorization-and-scopes.md +262 -0
  13. package/dist/docs/api/error-handling.md +211 -0
  14. package/dist/docs/api/index.md +172 -11
  15. package/dist/docs/api/pagination.md +176 -0
  16. package/dist/docs/image-optimisation-service.md +72 -0
  17. package/dist/docs/sdk/plugins/dynamic-experiences.md +2 -2
  18. package/dist/docs/workspaces.mdx +60 -1
  19. package/dist/esm/form/index.js +40 -33
  20. package/dist/esm/index.js +295 -170
  21. package/dist/esm/plugins/create-experience/index.js +1 -1
  22. package/dist/esm/plugins/dynamic-experiences/index.js +1 -1
  23. package/dist/esm/plugins/experience-browser-storage/index.js +1 -1
  24. package/dist/esm/plugins/history-browser-storage/index.js +1 -1
  25. package/dist/esm/plugins/responses-browser-storage/index.js +1 -1
  26. package/dist/esm/server/index.js +1 -1
  27. package/dist/experience-instance-BWniatU5.cjs +1 -0
  28. package/dist/experience-instance-C4UJM092.js +506 -0
  29. package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
  30. package/dist/types/entities/history/history.d.ts +9 -0
  31. package/dist/types/entities/history/history.d.ts.map +1 -1
  32. package/dist/types/form/create-form.d.ts +55 -0
  33. package/dist/types/form/create-form.d.ts.map +1 -1
  34. package/package.json +1 -11
  35. package/dist/cjs/plugins/dom-observer/index.js +0 -1
  36. package/dist/docs/reference/index.md +0 -11
  37. package/dist/docs/tooling/index.md +0 -19
  38. package/dist/esm/plugins/dom-observer/index.js +0 -107
  39. package/dist/experience-BhteyYBl.cjs +0 -1
  40. package/dist/experience-CoMdlvyn.js +0 -136
  41. package/dist/experience-instance-CZDcicPj.cjs +0 -1
  42. package/dist/experience-instance-IkIw31Cg.js +0 -387
  43. package/dist/nodes-ChVU1VZO.js +0 -101
  44. package/dist/nodes-DDDs-rC2.cjs +0 -1
  45. package/dist/types/plugins/dom-observer/index.d.ts +0 -3
  46. package/dist/types/plugins/dom-observer/index.d.ts.map +0 -1
  47. package/dist/types/plugins/dom-observer/plugin.d.ts +0 -51
  48. package/dist/types/plugins/dom-observer/plugin.d.ts.map +0 -1
  49. /package/dist/docs/{tooling/chrome-extension.md → chrome-extension.md} +0 -0
  50. /package/dist/docs/{tooling/gtm-template.md → gtm-template.md} +0 -0
  51. /package/dist/docs/{tooling/mcp.md → mcp.md} +0 -0
  52. /package/dist/docs/{tooling/vite-plugin.md → vite-plugin.md} +0 -0
  53. /package/dist/{id-Bbodazn8.cjs → id-Bv44ilEo.cjs} +0 -0
  54. /package/dist/{id-B-N2zNbS.js → id-CRqy981z.js} +0 -0
  55. /package/dist/{storage-hOHCCXvP.js → storage-6Xk0uAxB.js} +0 -0
  56. /package/dist/{storage-BXSlLTRa.cjs → storage-B6lQtc4-.cjs} +0 -0
@@ -1,387 +0,0 @@
1
- import { n as e, t } from "./rules-logic-BTIxfrJJ.js";
2
- import "./logger-6z_gb4rA.js";
3
- import { a as n, d as r, i, n as a, r as o, s, t as c } from "./nodes-ChVU1VZO.js";
4
- import { attach as l, combine as u, createApi as d, createDomain as f, createEffect as p, createEvent as m, sample as h, split as g } from "effector";
5
- import { createFactory as _, invoke as v } from "@withease/factories";
6
- //#region src/utils/node-tree/next-reachable-step-nodes.ts
7
- var y = (e, t, r, i, a = /* @__PURE__ */ new Set()) => a.has(r.id) ? [] : (a.add(r.id), n(r) && !i ? [r] : t.filter((e) => e.sourceNodeId === r.id).flatMap((n) => {
8
- let r = e.find((e) => e.id === n.destinationNodeId);
9
- return r ? y(e, t, r, !1, a) : [];
10
- })), b = (e, t, n) => y(e, t, n, !0, /* @__PURE__ */ new Set()), x = (e, t, n, r, i = /* @__PURE__ */ new Set()) => {
11
- if (i.has(n.id)) return [-1, -1];
12
- i.add(n.id);
13
- let a = t.filter((e) => e.sourceNodeId === n.id);
14
- if (a.length === 0) return [0, 0];
15
- let o = Infinity, s = -Infinity;
16
- for (let n of a) {
17
- let r = e.find((e) => e.id === n.destinationNodeId);
18
- if (!r) continue;
19
- let [a, c] = x(e, t, r, !1, new Set(i));
20
- a !== -1 && (o = Math.min(o, a + 1), s = Math.max(s, c + 1));
21
- }
22
- return o === Infinity ? [-1, -1] : [o, s];
23
- }, S = (e, t, n) => x(e, t, n, !0, /* @__PURE__ */ new Set()), C = (e, t, n, r = /* @__PURE__ */ new Set()) => {
24
- if (r.has(n.id)) return [-1, -1];
25
- if (r.add(n.id), n.type === "origin") return [0, 0];
26
- let i = t.filter((e) => e.destinationNodeId === n.id);
27
- if (i.length === 0) return [-1, -1];
28
- let a = Infinity, o = -Infinity;
29
- for (let n of i) {
30
- let i = e.find((e) => e.id === n.sourceNodeId);
31
- if (!i) continue;
32
- let [s, c] = C(e, t, i, new Set(r));
33
- s !== -1 && (a = Math.min(a, s + 1), o = Math.max(o, c + 1));
34
- }
35
- return a === Infinity ? [-1, -1] : [a, o];
36
- }, w = (e, t, n) => C(e, t, n, /* @__PURE__ */ new Set()), T = (e) => e.find((e) => e.type === "origin") || null, E = (e, t, n) => {
37
- if (!e) return T(t);
38
- let r = n.find((t) => t.sourceNodeId === e.id);
39
- return r && t.find((e) => e.id === r.destinationNodeId) || null;
40
- };
41
- //#endregion
42
- //#region src/utils/node-tree/get-next-node-from-condition.ts
43
- async function D(e, t, n, r) {
44
- let i = e ? "true" : "false", a = r.find((e) => e.sourceHandle === i && e.sourceNodeId === t);
45
- return n.find((e) => e.id === a?.destinationNodeId);
46
- }
47
- //#endregion
48
- //#region src/entities/experience-instance/experience-instance.ts
49
- var O = f("experience-instance"), k = _(({ client: r, experience: s, target: f, options: _ }) => {
50
- let v = m(), y = m(), x = m(), C = m(), k = m(), A = m(), j = s.componentStore, M = O.store("transitioning"), N = r.history.entriesStore.map((e) => e.filter((e) => e.experienceId === s.id)), P = N.map((e) => e.filter((e) => n(e.node))), F = N.map((e) => e.at(-1)?.node || null), I = u(r.steps.listStore, F, (e, t) => e.find((e) => t && n(t) && e.id === t.stepId) || null), L = u(r.steps.listStore, P, (e, t) => {
51
- let r = t.at(-2);
52
- if (!r || !n(r.node)) return null;
53
- let i = r.node;
54
- return e.find((e) => e.id === i.stepId) || null;
55
- }), R = u(s.treeStore, F, ({ nodes: e, edges: t }, n) => n ? b(e, t, n) : []), z = u(s.treeStore, F, ({ nodes: e, edges: t }, n) => n ? w(e, t, n) : [-1, -1]), B = u(s.treeStore, F, ({ nodes: e, edges: t }, n) => n ? S(e, t, n) : [-1, -1]), V = O.store(!1), H = d(V, {
56
- open: () => !0,
57
- close: () => !1,
58
- toggle: (e) => !e,
59
- set: (e, t) => t
60
- }), ee = p(async () => {
61
- r.history.back({ experienceId: s.id });
62
- }), te = l({
63
- source: s.treeStore,
64
- effect: async (e, t) => {
65
- let i = e.nodes.find((e) => n(e) && e.stepId === t);
66
- i && r.history.push({
67
- experienceId: s.id,
68
- node: i
69
- });
70
- }
71
- }), U = l({
72
- source: F,
73
- effect: (e) => {}
74
- }), W = l({
75
- source: s.treeStore,
76
- effect: async ({ nodes: e }) => T(e)
77
- }), G = l({
78
- source: s.treeStore,
79
- effect: async ({ nodes: e, edges: t }, n) => {
80
- if (i(n)) return E(n, e, t);
81
- }
82
- }), K = l({
83
- source: s.treeStore,
84
- effect: async ({ nodes: e, edges: n, conditions: i }, o) => {
85
- if (!a(o)) return;
86
- let s = i.find((e) => e.id === o.conditionId)?.logic;
87
- return s ? D(!!await t(r, s), o.id, e, n) : void 0;
88
- }
89
- }), q = l({
90
- source: s.treeStore,
91
- effect: async ({ nodes: e, edges: t }, n) => {
92
- if (!c(n)) return;
93
- let i = n.actionKey;
94
- if (!i) {
95
- `${n.id}`;
96
- return;
97
- }
98
- let a = r.actions.getByKey(i).getState();
99
- if (!a) {
100
- `${i}`;
101
- let r = t.find((e) => e.sourceNodeId === n.id && e.sourceHandle === "false");
102
- return r ? e.find((e) => e.id === r.destinationNodeId) : null;
103
- }
104
- if (typeof a != "function") {
105
- `${i}`;
106
- let r = t.find((e) => e.sourceNodeId === n.id && e.sourceHandle === "false");
107
- return r ? e.find((e) => e.id === r.destinationNodeId) : null;
108
- }
109
- try {
110
- `${i}`, await a({
111
- ...r.getStateSnapshot(),
112
- args: []
113
- }, { experience: Z });
114
- let o = t.find((e) => e.sourceNodeId === n.id && e.sourceHandle === "true");
115
- if (!o) return `${n.id}`, null;
116
- let s = e.find((e) => e.id === o.destinationNodeId);
117
- return `${i}${s?.id}`, s || null;
118
- } catch {
119
- `${i}`;
120
- let r = t.find((e) => e.sourceNodeId === n.id && e.sourceHandle === "false");
121
- if (!r) return `${n.id}`, null;
122
- let a = e.find((e) => e.id === r.destinationNodeId);
123
- return `${i}${a?.id}`, a || null;
124
- }
125
- }
126
- }), ne = p((e) => {
127
- o(e) && r.experiences.launch({ key: e.experienceKey });
128
- }), J = l({
129
- source: [F, s.treeStore],
130
- effect: async ([e, { nodes: t, edges: n }]) => E(e, t, n)
131
- }), Y = l({
132
- source: [F, s.treeStore],
133
- effect: async ([e, { nodes: t, edges: n }]) => E(e, t, n)
134
- }), re = p((e) => {
135
- r.history.push({
136
- experienceId: s.id,
137
- node: e
138
- });
139
- }), X = l({
140
- source: s.configStore,
141
- effect: async ({ initializeOpenLogic: n }) => _?.initialiseOpen === void 0 ? e(n) ? !!await t(r, n) : n ?? !1 : _.initialiseOpen
142
- }), Z = Object.freeze({
143
- id: Math.random().toString(36).substring(7),
144
- experienceKey: s.key,
145
- experienceId: s.id,
146
- configStore: s.configStore,
147
- target: f,
148
- componentStore: j,
149
- stateStore: M,
150
- isOpenStore: V,
151
- open: H.open,
152
- close: H.close,
153
- toggleOpen: H.toggle,
154
- setOpen: H.set,
155
- treeStore: s.treeStore,
156
- currentNodeStore: F,
157
- currentStepStore: I,
158
- previousStepStore: L,
159
- nextReachableStepNodesStore: R,
160
- stepsToOriginStore: z,
161
- stepsToLeafStore: B,
162
- goToNextStep: y,
163
- goToPreviousStep: x,
164
- goToStepById: C,
165
- stepsHistoryStore: P
166
- }), Q = m(), $ = m();
167
- return h({
168
- clock: F,
169
- target: Q
170
- }), h({
171
- clock: Q,
172
- filter: (e) => e === null,
173
- target: W
174
- }), h({
175
- clock: Q,
176
- filter: (e) => e !== null,
177
- target: $
178
- }), g({
179
- source: $,
180
- match: (e) => a(e) ? "condition" : n(e) ? "step" : o(e) ? "launchExperience" : i(e) ? "origin" : c(e) ? "action" : "other",
181
- cases: {
182
- origin: G,
183
- condition: K,
184
- step: U,
185
- launchExperience: ne,
186
- action: q,
187
- __: m()
188
- }
189
- }), h({
190
- clock: [
191
- K.doneData,
192
- G.doneData,
193
- W.doneData,
194
- Y.doneData,
195
- J.doneData,
196
- q.doneData
197
- ],
198
- filter: Boolean,
199
- target: re
200
- }), h({
201
- clock: y,
202
- target: Y
203
- }), h({
204
- clock: y,
205
- source: I,
206
- filter: Boolean,
207
- target: r.eventBus.prepend((e) => ({
208
- type: "step_submit",
209
- step: e,
210
- experience: Z
211
- }))
212
- }), h({
213
- clock: Y.done,
214
- source: I,
215
- filter: Boolean,
216
- target: r.eventBus.prepend((e) => ({
217
- type: "step_submit_success",
218
- step: e,
219
- experience: Z
220
- }))
221
- }), h({
222
- clock: Y.fail,
223
- source: I,
224
- filter: Boolean,
225
- target: r.eventBus.prepend((e) => ({
226
- type: "step_submit_error",
227
- step: e,
228
- experience: Z
229
- }))
230
- }), h({
231
- clock: x,
232
- target: ee
233
- }), h({
234
- clock: C,
235
- target: te
236
- }), h({
237
- source: u([
238
- K.pending,
239
- G.pending,
240
- W.pending,
241
- Y.pending
242
- ]),
243
- fn: (e) => e.some(Boolean) ? "transitioning" : "ready",
244
- target: M
245
- }), h({
246
- clock: U.doneData,
247
- source: I,
248
- filter: Boolean,
249
- target: r.eventBus.prepend((e) => ({
250
- type: "step_enter",
251
- step: e,
252
- experience: Z
253
- }))
254
- }), h({
255
- clock: A,
256
- target: X
257
- }), h({
258
- source: X.doneData,
259
- fn: Boolean,
260
- target: V
261
- }), h({
262
- source: F,
263
- clock: v,
264
- filter: (e) => e ? i(e) : !0,
265
- target: J
266
- }), h({
267
- source: V,
268
- filter: Boolean,
269
- target: v
270
- }), h({
271
- source: V,
272
- filter: Boolean,
273
- target: r.eventBus.prepend(() => ({
274
- type: "experience_open",
275
- experience: Z
276
- }))
277
- }), h({
278
- source: V,
279
- filter: (e) => !e,
280
- target: r.eventBus.prepend(() => ({
281
- type: "experience_close",
282
- experience: Z
283
- }))
284
- }), h({
285
- clock: k,
286
- target: [A]
287
- }), k(), Z;
288
- });
289
- function A(e) {
290
- return v(k, e);
291
- }
292
- var j = _(({ client: e }) => {
293
- let t = O.store({}), n = m(), i = m(), a = m(), o = d(t, {
294
- register(e, t) {
295
- let n = [...e[t.experienceId] ?? []];
296
- return n.push(t), {
297
- ...e,
298
- [t.experienceId]: n
299
- };
300
- },
301
- unregister(e, t) {
302
- let n = t.experienceId, r = e[n]?.filter((e) => e !== t);
303
- return {
304
- ...e,
305
- [n]: r ?? []
306
- };
307
- }
308
- }), c = p(({ experience: t, target: n, options: r }) => A({
309
- client: e,
310
- experience: t,
311
- target: n,
312
- options: r
313
- })), l = p((e) => {
314
- o.register(e);
315
- }), u = p((e) => {
316
- e.target && r(e.target, () => {
317
- a(e);
318
- });
319
- }), f = p((e) => {
320
- o.unregister(e);
321
- }), g = p((t) => {
322
- let n = t.componentStore.getState();
323
- if (!n) return;
324
- let r = n.frameworkStore.getState();
325
- if (!r) {
326
- `${n.name}`;
327
- return;
328
- }
329
- let i = t.target;
330
- if (!i) {
331
- `${t.experienceId}`;
332
- return;
333
- }
334
- let a = s(i);
335
- try {
336
- r.render(a, n.component, e, t);
337
- } catch {}
338
- });
339
- h({
340
- clock: n,
341
- target: c
342
- }), h({
343
- clock: a,
344
- target: f
345
- }), h({
346
- clock: c.doneData,
347
- target: [
348
- l,
349
- u,
350
- i
351
- ]
352
- }), h({
353
- clock: c.doneData,
354
- target: e.eventBus.prepend((e) => ({
355
- type: "experience_initialize",
356
- experience: e
357
- }))
358
- }), h({
359
- clock: i,
360
- target: g
361
- });
362
- function _(e, t, r) {
363
- n({
364
- experience: e,
365
- target: t,
366
- options: r
367
- });
368
- }
369
- let v = t.map((e) => Object.values(e).flat());
370
- function y(e) {
371
- return v.map((t) => t.filter((t) => t.experienceKey === e), { skipVoid: !1 });
372
- }
373
- function b(e) {
374
- return t.map((t) => t[e] || [], { skipVoid: !1 });
375
- }
376
- return {
377
- spawn: _,
378
- getByExperienceKey: y,
379
- getByExperienceId: b,
380
- listStore: v
381
- };
382
- });
383
- function M(e) {
384
- return v(j, e);
385
- }
386
- //#endregion
387
- export { M as n, A as t };
@@ -1,101 +0,0 @@
1
- import { d as e, l as t, r as n } from "./supports-0XIfd4-R.js";
2
- //#region src/utils/dom.ts
3
- function r(t) {
4
- return !e() || !n() ? [] : Array.from(window.document.querySelectorAll(t)).filter((e) => e instanceof HTMLElement);
5
- }
6
- var i = "open";
7
- function a(e) {
8
- if (!t()) throw Error("Shadow DOM is not supported in this environment");
9
- return e.attachShadow({ mode: i });
10
- }
11
- function o() {
12
- return new Promise((e, t) => {
13
- if (!n()) {
14
- t();
15
- return;
16
- }
17
- document.readyState === "loading" ? document.addEventListener("readystatechange", () => e(), { once: !0 }) : e();
18
- });
19
- }
20
- function s(e, t) {
21
- let n = new MutationObserver((r) => {
22
- document.contains(e) || (n.disconnect(), t());
23
- });
24
- n.observe(document.body, {
25
- childList: !0,
26
- subtree: !0
27
- });
28
- }
29
- var c = "picked-root", l = "picked-target", u = "picked-root";
30
- function d(e, t) {
31
- return [...e, {
32
- selector: `${u}[experience-id="${t}"]`,
33
- placement: "replace"
34
- }].flatMap((e) => {
35
- let n = r(e.selector).filter((e) => !m(e, t) && !h(e, t));
36
- return {
37
- ...e,
38
- elements: n
39
- };
40
- });
41
- }
42
- function f(e, t, n) {
43
- return e.flatMap((e) => e.elements.map((r) => _(r, e.placement, t, n)));
44
- }
45
- function p(e, t) {
46
- e.classList.add(l), e.classList.add(`${l}-${t}`);
47
- }
48
- function m(e, t) {
49
- return t ? e.classList.contains(`${l}-${t}`) : e.classList.contains(`${l}`);
50
- }
51
- function h(e, t) {
52
- return t ? e.classList.contains(`${c}-${t}`) : e.classList.contains(c);
53
- }
54
- function g(e, t) {
55
- let n = document.createElement("div");
56
- return n.style.display = "block", n.classList.add(c), n.classList.add(`${c}-${e}`), n.classList.add(`${c}-${t}`), n;
57
- }
58
- function _(e, t, n, r) {
59
- let i, a = g(n, r);
60
- if (e instanceof Document) i = e.body.appendChild(a);
61
- else {
62
- switch (t) {
63
- case "replace":
64
- e.replaceWith(a);
65
- break;
66
- case "before":
67
- e.before(a);
68
- break;
69
- case "after":
70
- e.after(a);
71
- break;
72
- case "prepend":
73
- e.prepend(a);
74
- break;
75
- case "append":
76
- e.append(a);
77
- break;
78
- }
79
- i = a;
80
- }
81
- return i;
82
- }
83
- //#endregion
84
- //#region src/utils/nodes.ts
85
- function v(e) {
86
- return e.type === "condition";
87
- }
88
- function y(e) {
89
- return e.type === "step";
90
- }
91
- function b(e) {
92
- return e.type === "experience";
93
- }
94
- function x(e) {
95
- return e.type === "origin";
96
- }
97
- function S(e) {
98
- return e.type === "action";
99
- }
100
- //#endregion
101
- export { y as a, o as c, s as d, p as f, x as i, d as l, v as n, f as o, b as r, a as s, S as t, h as u };
@@ -1 +0,0 @@
1
- const e=require(`./supports-Dsjg-82e.cjs`);function t(t){return!e.d()||!e.r()?[]:Array.from(window.document.querySelectorAll(t)).filter(e=>e instanceof HTMLElement)}var n=`open`;function r(t){if(!e.l())throw Error(`Shadow DOM is not supported in this environment`);return t.attachShadow({mode:n})}function i(){return new Promise((t,n)=>{if(!e.r()){n();return}document.readyState===`loading`?document.addEventListener(`readystatechange`,()=>t(),{once:!0}):t()})}function a(e,t){let n=new MutationObserver(r=>{document.contains(e)||(n.disconnect(),t())});n.observe(document.body,{childList:!0,subtree:!0})}var o=`picked-root`,s=`picked-target`,c=`picked-root`;function l(e,n){return[...e,{selector:`${c}[experience-id="${n}"]`,placement:`replace`}].flatMap(e=>{let r=t(e.selector).filter(e=>!f(e,n)&&!p(e,n));return{...e,elements:r}})}function u(e,t,n){return e.flatMap(e=>e.elements.map(r=>h(r,e.placement,t,n)))}function d(e,t){e.classList.add(s),e.classList.add(`${s}-${t}`)}function f(e,t){return t?e.classList.contains(`${s}-${t}`):e.classList.contains(`${s}`)}function p(e,t){return t?e.classList.contains(`${o}-${t}`):e.classList.contains(o)}function m(e,t){let n=document.createElement(`div`);return n.style.display=`block`,n.classList.add(o),n.classList.add(`${o}-${e}`),n.classList.add(`${o}-${t}`),n}function h(e,t,n,r){let i,a=m(n,r);if(e instanceof Document)i=e.body.appendChild(a);else{switch(t){case`replace`:e.replaceWith(a);break;case`before`:e.before(a);break;case`after`:e.after(a);break;case`prepend`:e.prepend(a);break;case`append`:e.append(a);break}i=a}return i}function g(e){return e.type===`condition`}function _(e){return e.type===`step`}function v(e){return e.type===`experience`}function y(e){return e.type===`origin`}function b(e){return e.type===`action`}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return p}});
@@ -1,3 +0,0 @@
1
- /** @file Public entrypoint for the dom-observer plugin. */
2
- export { domObserverPlugin } from './plugin';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dom-observer/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA"}
@@ -1,51 +0,0 @@
1
- import { Plugin } from '../../entities/plugin/plugin';
2
- /**
3
- * Watches the document for added nodes that match an experience target
4
- * selector, and re-runs `initialiseExperiences` when one appears.
5
- *
6
- * Decouples DOM-driven reconciliation from route detection so that any
7
- * DOM addition bringing a target into existence — SPA navigations, lazy
8
- * mounts, framework hydration, modal opens, infinite scroll — spawns the
9
- * experience without the consumer wiring a router-specific hook.
10
- *
11
- * Installs a single `MutationObserver` on `document.body` with
12
- * `{ childList: true, subtree: true }`. Each matching batch schedules a
13
- * coalesced reconcile on the next animation frame; further mutations
14
- * during that frame collapse into the same call. A trailing call is
15
- * scheduled if mutations arrive while reconciliation is in flight. The
16
- * selector set is rebuilt whenever `client.experiences.listStore` changes
17
- * or any registered experience's `configStore` updates, so newly
18
- * registered experiences and re-merged target selectors both extend the
19
- * watch list without restarting the observer. Invalid selectors are
20
- * filtered (and a warning logged) at recompute time so the matcher hot
21
- * path never throws.
22
- *
23
- * Before each reconcile, history is cleared for any experience whose
24
- * instance was previously observed alive but has been absent for at
25
- * least two consecutive reconciles. The two-frame debounce prevents
26
- * transient unmounts (SPA route reflows, conditional re-renders, portal
27
- * repositioning) from wiping mid-flow user history. Each id is cleared
28
- * at most once per spawn, and cold inits with restored history left by
29
- * `historyBrowserStoragePlugin` are left untouched because no prior
30
- * instance has been observed.
31
- *
32
- * Setup is deferred until `document.body` is parsed, so SDKs loaded from
33
- * `<head>` without `defer` (the standard Shopify-theme / GTM-template
34
- * pattern) still install once the body becomes available.
35
- *
36
- * No-ops outside browser environments and on partial-DOM runtimes that
37
- * lack `MutationObserver` or `requestAnimationFrame`. `MutationObserver`
38
- * does not cross shadow root or iframe boundaries, so experiences whose
39
- * target lives inside a shadow tree or a cross-origin frame are not
40
- * reconciled by this plugin.
41
- *
42
- * @returns {Plugin} The plugin.
43
- * @example
44
- * ```typescript
45
- * createClient({
46
- * plugins: [domObserverPlugin()]
47
- * })
48
- * ```
49
- */
50
- export declare const domObserverPlugin: () => Plugin;
51
- //# sourceMappingURL=plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/dom-observer/plugin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAK1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,iBAAiB,QAAO,MAiBpC,CAAA"}
File without changes
File without changes
File without changes