@picked/client 0.0.1-dev.1769473835566 → 0.0.1-dev.1769486944066
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/plugins/create-experience/index.js +1 -1
- package/dist/cjs/plugins/data-layer/index.js +1 -0
- package/dist/cjs/plugins/responses-browser-storage/index.js +1 -1
- package/dist/cjs/plugins/responses-indexeddb/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/esm/index.js +270 -997
- package/dist/esm/plugins/create-experience/index.js +251 -255
- package/dist/esm/plugins/data-layer/index.js +198 -0
- package/dist/esm/plugins/responses-browser-storage/index.js +23 -25
- package/dist/esm/plugins/responses-indexeddb/index.js +49 -67
- package/dist/esm/plugins/single-page-app/index.js +3 -3
- package/dist/esm/plugins/web-components/index.js +1 -1
- package/dist/esm/plugins/window-object/index.js +1 -1
- package/dist/esm/server/index.js +19 -19
- package/dist/experience-instance-CsMhH0DN.cjs +1 -0
- package/dist/{experience-instance-Bg6BWuwI.js → experience-instance-DJCJUe0h.js} +227 -218
- package/dist/{supports-BjhuLJ8z.js → supports-DCSoenK6.js} +11 -11
- package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
- package/dist/types/plugins/data-layer/custom-event.d.ts +5 -0
- package/dist/types/plugins/data-layer/custom-event.d.ts.map +1 -0
- package/dist/types/plugins/data-layer/index.d.ts +2 -0
- package/dist/types/plugins/data-layer/index.d.ts.map +1 -0
- package/dist/types/plugins/data-layer/plugin.d.ts +55 -0
- package/dist/types/plugins/data-layer/plugin.d.ts.map +1 -0
- package/dist/types/plugins/data-layer/utils.d.ts +39 -0
- package/dist/types/plugins/data-layer/utils.d.ts.map +1 -0
- package/dist/types/utils/events.d.ts +7 -1
- package/dist/types/utils/events.d.ts.map +1 -1
- package/dist/user-session-DQh0BBTx.cjs +1 -0
- package/dist/user-session-XidjAPGf.js +747 -0
- package/package.json +11 -5
- package/dist/experience-instance-DBi45xr9.cjs +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const o = Symbol("Picked"), t = globalThis, r = (n) => {
|
|
1
|
+
const o = /* @__PURE__ */ Symbol("Picked"), t = globalThis, r = (n) => {
|
|
2
2
|
t[o] = n;
|
|
3
3
|
};
|
|
4
4
|
function e() {
|
|
@@ -81,15 +81,15 @@ function h() {
|
|
|
81
81
|
export {
|
|
82
82
|
t as G,
|
|
83
83
|
l as a,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
e,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
i,
|
|
92
|
-
|
|
93
|
-
|
|
84
|
+
r as b,
|
|
85
|
+
e as c,
|
|
86
|
+
s as d,
|
|
87
|
+
a as e,
|
|
88
|
+
c as f,
|
|
89
|
+
u as g,
|
|
90
|
+
i as h,
|
|
91
|
+
f as i,
|
|
92
|
+
y as j,
|
|
93
|
+
h as k,
|
|
94
94
|
p as s
|
|
95
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experience-instance.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience-instance/experience-instance.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAGjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAoB1C,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAC5E,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACtF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;CACzC;AAED,QAAA,MAAM,+BAA+B,oCAKhC;IACD,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,eAAe,CAAA;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"experience-instance.d.ts","sourceRoot":"","sources":["../../../../src/entities/experience-instance/experience-instance.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAGjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAoB1C,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAC5E,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACtF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;CACzC;AAED,QAAA,MAAM,+BAA+B,oCAKhC;IACD,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,eAAe,CAAA;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsbF,CAAA;AAED,wBAAgB,wBAAwB,CACtC,CAAC,SAAS,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAC/D,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAE/D;AAED,QAAA,MAAM,oCAAoC,eAA8B;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;wBAqI7D,eAAe,UAAU,WAAW;4BAQhC,UAAU,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS/C,CAAA;AAEF,wBAAgB,6BAA6B,CAC3C,CAAC,SAAS,UAAU,CAAC,OAAO,oCAAoC,CAAC,CAAC,CAAC,CAAC,EACpE,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,oCAAoC,CAAC,CAEpE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const INTERACTION_TYPES: readonly ["click", "double_click", "mouse_over", "mouse_out", "mouse_down", "mouse_up", "focus", "blur"];
|
|
2
|
+
export type InteractionType = (typeof INTERACTION_TYPES)[number];
|
|
3
|
+
export declare function bindPickedCustomEventListeners(handler: (value: string) => void, target: ShadowRoot | null): void;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=custom-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-event.d.ts","sourceRoot":"","sources":["../../../../src/plugins/data-layer/custom-event.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,iBAAiB,0GASb,CAAA;AAEV,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAgBhE,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,MAAM,EAAE,UAAU,GAAG,IAAI,QA+B1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/data-layer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ExperienceStep } from '../../entities/experience/experience';
|
|
2
|
+
import { FeatureBucket } from '../../entities/feature/feature';
|
|
3
|
+
import { Picked } from '../../picked';
|
|
4
|
+
import { FormPayload, EventBusPayload } from '../../utils/events';
|
|
5
|
+
type DataLayer = Array<DataLayerEvent>;
|
|
6
|
+
declare global {
|
|
7
|
+
var dataLayer: DataLayer | undefined;
|
|
8
|
+
}
|
|
9
|
+
interface PickedItem {
|
|
10
|
+
item_name?: string;
|
|
11
|
+
item_id?: string;
|
|
12
|
+
affiliation?: string;
|
|
13
|
+
currency?: string;
|
|
14
|
+
item_brand?: string;
|
|
15
|
+
item_list_id?: string;
|
|
16
|
+
item_list_name?: string;
|
|
17
|
+
item_variant?: string;
|
|
18
|
+
price?: number;
|
|
19
|
+
quantity?: number;
|
|
20
|
+
item_category1?: string;
|
|
21
|
+
item_category2?: string;
|
|
22
|
+
item_category3?: string;
|
|
23
|
+
item_category4?: string;
|
|
24
|
+
}
|
|
25
|
+
interface DataLayerEvent {
|
|
26
|
+
event: 'picked_event';
|
|
27
|
+
picked_app: {
|
|
28
|
+
organizationId: string;
|
|
29
|
+
projectId: string;
|
|
30
|
+
};
|
|
31
|
+
picked_environment: string;
|
|
32
|
+
picked_form?: FormPayload;
|
|
33
|
+
picked_cvly_env?: string;
|
|
34
|
+
picked_feature_list?: FeatureBucket[];
|
|
35
|
+
picked_action: (typeof defaultEventList)[number];
|
|
36
|
+
picked_value?: string | boolean;
|
|
37
|
+
picked_experience?: {
|
|
38
|
+
id: string;
|
|
39
|
+
title: string;
|
|
40
|
+
};
|
|
41
|
+
picked_step?: ExperienceStep;
|
|
42
|
+
picked_item?: PickedItem;
|
|
43
|
+
}
|
|
44
|
+
declare const defaultEventList: string[];
|
|
45
|
+
export declare const dataLayerPlugin: ({ featureWatchList, eventListOverride, eventMappingOverride, mappedProductToPicked, }?: {
|
|
46
|
+
featureWatchList?: string[];
|
|
47
|
+
eventListOverride?: string[];
|
|
48
|
+
eventMappingOverride?: Partial<Record<EventBusPayload["type"], string>>;
|
|
49
|
+
mappedProductToPicked?: () => PickedItem;
|
|
50
|
+
}) => {
|
|
51
|
+
name: string;
|
|
52
|
+
setup: (client: Picked) => void;
|
|
53
|
+
};
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/data-layer/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAGnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AActE,KAAK,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,CAAA;AAEtC,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;CACrC;AAGD,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,cAAc,CAAA;IACrB,UAAU,EAAE;QACV,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAA;IACrC,aAAa,EAAE,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;IAChD,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,iBAAiB,CAAC,EAAE;QAClB,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,WAAW,CAAC,EAAE,UAAU,CAAA;CACzB;AAID,QAAA,MAAM,gBAAgB,UAOrB,CAAA;AAwDD,eAAO,MAAM,eAAe,GAAI,wFAK7B;IACD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACvE,qBAAqB,CAAC,EAAE,MAAM,UAAU,CAAA;CACpC,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAqGvD,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ExperienceInstance } from '../../entities/experience-instance/experience-instance';
|
|
2
|
+
import { ExperienceStep } from '../../entities/experience/experience';
|
|
3
|
+
import { FeatureBucket, ResolvedFeatureBucket } from '../../entities/feature/feature';
|
|
4
|
+
import { FieldValue } from '../../entities/field/field';
|
|
5
|
+
import { EventBusPayload } from '../../utils/events';
|
|
6
|
+
export declare const getCvlyEnv: () => string | null;
|
|
7
|
+
export declare function setPickedUserCookie(value: boolean): void;
|
|
8
|
+
export declare function setPickedSessionIdCookie(value: string): void;
|
|
9
|
+
export declare const getStepResponses: (responses: {
|
|
10
|
+
fieldId: string;
|
|
11
|
+
value: FieldValue | undefined;
|
|
12
|
+
}[], step: ExperienceStep | undefined) => {
|
|
13
|
+
fieldId: string;
|
|
14
|
+
value: FieldValue | undefined;
|
|
15
|
+
}[];
|
|
16
|
+
export declare const getExperienceFromInstance: (experienceInstance: ExperienceInstance) => {
|
|
17
|
+
id: string;
|
|
18
|
+
title: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Type guard to check if a FeatureBucket is resolved. Events require the resolved bucket value.
|
|
22
|
+
*/
|
|
23
|
+
export declare function isFeatureResolved(feature: FeatureBucket): feature is ResolvedFeatureBucket;
|
|
24
|
+
export declare const getFeatureList: (features: FeatureBucket[]) => {
|
|
25
|
+
bucket: string | boolean;
|
|
26
|
+
isResolved: true;
|
|
27
|
+
getBucket: () => {
|
|
28
|
+
id: string;
|
|
29
|
+
bucket: string | boolean;
|
|
30
|
+
};
|
|
31
|
+
name: string;
|
|
32
|
+
key: string;
|
|
33
|
+
id: string;
|
|
34
|
+
}[];
|
|
35
|
+
export declare const mapExperienceToEvent: (payload: EventBusPayload) => {
|
|
36
|
+
id: string;
|
|
37
|
+
title: string;
|
|
38
|
+
} | undefined;
|
|
39
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/plugins/data-layer/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAA;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAC1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,eAAO,MAAM,UAAU,qBAEtB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,QAGjD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,QAErD;AAED,eAAO,MAAM,gBAAgB,GAC3B,WAAW;IACT,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;CAC9B,EAAE,EACH,MAAM,cAAc,GAAG,SAAS;aAHrB,MAAM;WACR,UAAU,GAAG,SAAS;GAUhC,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,oBAAoB,kBAAkB;;;CAK/E,CAAA;AAED;;GAEG;AAEH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,qBAAqB,CAE1F;AAED,eAAO,MAAM,cAAc,GAAI,UAAU,aAAa,EAAE;;;;;;;;;;GAYvD,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,eAAe;;;aAgB5D,CAAA"}
|
|
@@ -16,7 +16,7 @@ export interface PayloadMap {
|
|
|
16
16
|
id: string;
|
|
17
17
|
};
|
|
18
18
|
user_decide: {
|
|
19
|
-
|
|
19
|
+
is_user: boolean;
|
|
20
20
|
};
|
|
21
21
|
feature_decide: {
|
|
22
22
|
feature: ResolvedFeature;
|
|
@@ -27,6 +27,11 @@ export interface PayloadMap {
|
|
|
27
27
|
experience_open: {
|
|
28
28
|
experience: ExperienceStore;
|
|
29
29
|
};
|
|
30
|
+
experience_interaction: {
|
|
31
|
+
step?: ExperienceStep;
|
|
32
|
+
experienceInstance: ExperienceInstance;
|
|
33
|
+
value: string;
|
|
34
|
+
};
|
|
30
35
|
experience_close: {
|
|
31
36
|
experience: ExperienceStore;
|
|
32
37
|
};
|
|
@@ -87,6 +92,7 @@ export type PickedEventType = keyof PayloadMap;
|
|
|
87
92
|
export type EventBusPayload = {
|
|
88
93
|
[K in PickedEventType]: {
|
|
89
94
|
type: K;
|
|
95
|
+
value?: string | boolean;
|
|
90
96
|
} & (PayloadMap[K] extends never ? object : PayloadMap[K]);
|
|
91
97
|
}[PickedEventType];
|
|
92
98
|
export declare const createEventBus: () => import('effector').EventCallable<EventBusPayload>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/utils/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACxF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAElE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACzB,UAAU,EAAE,KAAK,CAAA;IACjB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACvB,WAAW,EAAE;QAAE,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/utils/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const l=require("effector"),S=require("@withease/factories"),w=require("./experience-instance-CsMhH0DN.cjs"),E=require("./logger-BsmHUUw1.cjs"),F=require("./storage-YlR83AWP.cjs"),T=require("./id-BKIWbSTy.cjs"),C=require("./object-BbFTsGh3.cjs"),B=require("./supports-YvpQZxbh.cjs"),O=l.createDomain("experience"),N=S.createFactory(({client:e,experience:t})=>{const o=O.store(t),d=l.createApi(o,{merge(i,f){return{...i,...f.experience}}}),g=o.map(i=>({name:i.name,decisionLogic:i.condition??i.decide,targetSelectors:i.targets,initializeOpenLogic:t.initializeOpen})),p=e.components.listStore.map(i=>i.find(f=>f.name===`experience:${t.id}`)||i.find(f=>f.name==="experience"),{skipVoid:!1}),n=o.map(i=>({steps:i.steps,nodes:i.nodes,edges:i.edges,conditionals:i.conditionals})),r=t.actions??[];return{id:t.id,configStore:g,treeStore:n,componentStore:p,actions:r,merge:d.merge}});function U(e){return S.invoke(N,e)}const q=S.createFactory(({client:e})=>{const t=O.store({}),o=l.createApi(t,{register(n,r){return{...n,[r.id]:r}}});function d(n){const r=t.getState()[n.id];if(r){r.merge({experience:n,strategy:"override"});return}const i=U({client:e,experience:n});o.register(i)}const g=t.map(n=>Object.values(n));function p(n){return t.map(r=>r[n],{skipVoid:!1})}return{register:d,getById:p,listStore:g}});function L(e){return S.invoke(q,e)}const _=(e,t)=>{t.register(e)},P=(e,t)=>{const{targetSelectors:o}=t.configStore.getState(),d=w.getTargetElements(o,t.id);d.forEach(({elements:p})=>p.forEach(n=>w.tagTargetElement(n,t.id))),w.createAppHosts(d,t.id).forEach(p=>{e.experienceInstances.spawn(t,p)})},H=async e=>{await Promise.all(e.experiences.listStore.getState().map(async t=>{await z(e,t)&&P(e,t)}))},z=async(e,t)=>{const{decisionLogic:o,targetSelectors:d}=t.configStore.getState();return w.getTargetElements(d,t.id).length<1||d.length===0?!1:o&&w.isRulesLogic(o)?await w.evaluateRuleLogic(e,o)===!0:!0},K=l.createDomain("component"),G=S.createFactory(({client:e,component:t,name:o})=>{const d=e.frameworks.getByName(t.frameworkName);return{name:o,component:t,frameworkStore:d}});function Y(e){return S.invoke(G,e)}const J=S.createFactory(({client:e})=>{const t=K.store({}),o=l.createApi(t,{register(n,r){return{...n,[r.name]:r}}});function d(n,r){t.getState()[n]&&E.logger("warn",`Component '${n}' already registered. Registering again will override the previous registration.`);const f=Y({client:e,name:n,component:r});o.register(f)}const g=t.map(n=>Object.values(n));function p(n){return t.map(r=>r[n],{skipVoid:!1})}return{register:d,getByName:p,listStore:g}});function Q(e){return S.invoke(J,e)}const W=(e,t,o)=>{o.register(e,t)},X=l.createDomain("framework"),Z=S.createFactory(({client:e})=>{const t=X.store({}),o=l.createApi(t,{register(n,r){return{...n,[r.name]:r.framework}}});function d(n,r){t.getState()[n]&&E.logger("warn",`Framework '${n}' already registered. Registering again will override the previous registration.`),o.register({name:n,framework:r})}const g=t.map(n=>Object.values(n));function p(n){return t.map(r=>r[n],{skipVoid:!1})}return{register:d,getByName:p,listStore:g}});function ee(e){return S.invoke(Z,e)}const te=(e,t)=>{t.register(e.name,e)},re=6e3,ne=F.createStorageKey("last_ping","global"),se=e=>`${e}/api/v1/ping`,oe=async e=>{try{const t=Date.now(),o=F.localStore.get(ne);let d=0;if(o.isSet()&&(d=o.json()??0),d&&t-d<re)return!0;const g=se(e.apiUrl),p={projectId:e.projectId,path:window.location.pathname},n=JSON.stringify(p),r={"Content-Type":"application/json"},f=document.getElementById("picked_script")?.dataset.verceltoken;f&&(r["x-vercel-protection-bypass"]=f);const h=(await fetch(g,{method:"POST",headers:r,body:n})).ok;return h&&o.set(t),h}catch(t){return E.logger("error",t),!1}};function V(e){const t=typeof window<"u",o={client:e,responses:e.responses.listStore.getState(),fields:e.fields.listStore.getState(),location:t?window.location:void 0,document:t?window.document:void 0,sessionStorage:t?window.sessionStorage:void 0,localStorage:t?window.localStorage:void 0};return Object.freeze(o)}const ie=l.createDomain("predicate"),ae=S.createFactory(({client:e})=>{const t=ie.store({}),o=l.createApi(t,{register(r,i){return{...r,[i.name]:{name:i.name,predicate:i.predicate}}}});function d(r,i){t.getState()[r]&&E.logger("warn",`Predicate '${r}' already registered. Registering again will override the previous registration.`),o.register(Object.freeze({name:r,predicate:i}))}const g=t.map(r=>Object.values(r));function p(r){return t.map(i=>i[r]?.predicate,{skipVoid:!1})}function n(r){const i=l.createStore(()=>{},{skipVoid:!1}),f=l.createEffect(async()=>{const k=p(r).getState();if(!k)return;const h=V(e);return(...m)=>k({...h,args:m})});return l.sample({source:{responses:e.responses.listStore,fields:e.fields.listStore},target:f}),l.sample({clock:f.doneData,filter:k=>k!==void 0,target:i}),f(),i}return{register:d,getByName:p,listStore:g,getEvokablePredicate:n}});function ce(e){return S.invoke(ae,e)}const ue=(e,t,o)=>{o.register(e,t)},R=l.createDomain("feature"),le=S.createFactory(({client:e})=>{const t=R.store({}),o=R.store([]),d=l.createApi(t,{register(s,a){return{...s,[a.id]:a.feature}}});function g(s,a){t.getState()[s]&&E.logger("warn",`Feature '${s}' already registered. Registering again will override the previous registration.`);const c={id:s,feature:{...a,id:s}};d.register(Object.freeze({id:s,feature:c}))}const p=l.createEffect(async({id:s,key:a,storage:u="local"})=>{const c=F.createStorageKey(`feature:${s}:${a}`,"global"),v=(u==="session"?F.sessionStore:F.localStore).get(c).boolean();return v===null?null:{id:s,key:a,bucket:v,storage:u}}),n=l.createEffect(s=>{if(!s)return null;const a=F.createStorageKey(`feature:${s.id}:${s.key}`,"global");(s.storage==="session"?F.sessionStore:F.localStore).set(a,s.bucket)}),r=new Map,i=l.attach({source:{allFeaturesStore:t,resolvedFeaturesStore:o},effect:async({allFeaturesStore:s,resolvedFeaturesStore:a},{id:u,decide:c,key:y})=>{const v=a.find(D=>D.id===u&&D.key===y);if(v)return v;const b=s[u];if(!b)throw new Error(`Feature with id '${u}' not found`);const x=r.get(`${u}:${y}`);if(x!==void 0){const D=await x;return{id:b.id,bucket:D,key:y,storage:b.feature.storage}}const A=c();r.set(`${u}:${y}`,A);const M=await A;return{id:b.id,bucket:M,key:y,storage:b.feature.storage}}});l.sample({clock:d.register,fn:s=>{const{id:a,feature:u}=s;return{id:a,key:u.feature.key,storage:u.feature.storage}},target:p}),l.sample({source:t,clock:i.doneData,fn:(s,a)=>{const{id:u,bucket:c,storage:y}=a,v=s[u]?.feature.key;return v?{key:v,id:u,bucket:c,storage:y}:null},target:n});const f=l.combine({allFeaturesStore:t,resolvedFeaturesStore:o}).map(({allFeaturesStore:s,resolvedFeaturesStore:a})=>Object.values(s).map(u=>{const c=a.find(y=>y.id===u.id&&y.key===u.feature.key);return c?{id:u.id,name:u.feature.name,key:u.feature.key,getBucket:()=>({id:u.id,bucket:c.bucket}),isResolved:!0}:{id:u.id,name:u.feature.name,key:u.feature.key,getBucket:async()=>await i(u.feature),isResolved:!1}}));l.sample({clock:i.doneData,source:{resolvedFeatures:o},filter:({resolvedFeatures:s},{id:a,key:u})=>!s.some(y=>y.id===a&&y.key===u),fn:(s,a)=>a,target:e.eventBus.prepend(s=>({type:"feature_decide",feature:s}))}),l.sample({clock:[p.doneData,i.doneData],source:o,fn:(s,a)=>!a||s.some(c=>c.id===a.id&&c.key===a.key)?s:[...s,a],target:o});function k(s){return f.map(a=>a.find(u=>u.id===s))}function h(s){return t.map(a=>a[s],{skipVoid:!1})}function m(s){const a=l.createStore(async()=>{},{skipVoid:!1}),u=l.createEffect(async()=>{const c=k(s).getState();if(c)return async()=>(await c.getBucket()).bucket});return l.sample({source:o,filter:c=>c.some(y=>y.id===s),target:u}),l.sample({clock:u.doneData,filter:c=>c!==void 0,target:a}),u(),a}return{register:g,getById:k,getByName:h,listStore:f,getEvokableFeature:m}});function de(e){return S.invoke(le,e)}const ge=(e,t,o)=>{o.register(e,t)},I=l.createDomain("history");function $(e,t){return{id:T.generateId(`history-entry-${Date.now()}-${Math.random()}}`),node:t,at:Date.now(),experienceId:e}}const pe=S.createFactory(()=>{const e=I.store({entries:[]}),t=I.event(),o=I.event(),d=I.event(),g=I.event();e.on(t,(n,r)=>({entries:[...n.entries,$(r.experienceId,r.node)]})),e.on(o,(n,r)=>({entries:[...n.entries.slice(0,-1),$(r.experienceId,r.node)]})),e.on(g,(n,r)=>r);function p(n,r){const i={lastStepIndex:-1,secondLastStepIndex:-1};for(let f=n.length-1;f>=0;f--){const k=n[f],h=k?.node;if(!(!h||!w.isStepNode(h))&&!(r&&k?.experienceId!==r))if(i.lastStepIndex===-1)i.lastStepIndex=f;else{i.secondLastStepIndex=f;break}}return i}return e.on(d,(n,r)=>{const{secondLastStepIndex:i}=p(n.entries,r.experienceId),f=i!==-1?n.entries.slice(0,i+1):n.entries;return{...n,entries:f}}),{push:t,replace:o,back:d,restore:g,entriesStore:e.map(n=>n.entries)}});function fe(){return S.invoke(pe)}const me=l.createDomain("field"),ye=S.createFactory(()=>{const e=me.store({}),t=l.createApi(e,{register(r,i){return{...r,[i.field.id]:i.field}}});function o(r){t.register({field:r})}function d(r,i){const f=p(r).getState();if(!f)return;const k=Object.assign({},f,{...i});t.register({field:{...k}})}const g=e.map(r=>Object.values(r));function p(r){return e.map(i=>i[r]||null)}function n(r){return e.map(i=>Object.values(i).find(f=>f.name===r)||null)}return{register:o,update:d,getById:p,listStore:g,getByName:n}});function Se(){return S.invoke(ye)}const ve=(e,t)=>{t.register(e)},ke=l.createDomain("action"),he=S.createFactory(()=>{const e=ke.store({}),t=l.createApi(e,{register(n,r){return{...n,[r.name]:{name:r.name,action:r.action}}}});function o(n,r){t.register({name:n,action:r})}const d=e.map(n=>Object.values(n));function g(n){return e.map(r=>r[n],{skipVoid:!1})}function p(n){return e.map(r=>{const i=r[n];return i?i.action:void 0},{skipVoid:!1})}return{register:o,getByName:g,listStore:d,getEvokableAction:p}});function Fe(){return S.invoke(he)}const we=(e,t,o)=>{o.register(e,t)};function j(e){return typeof e>"u"||e===null||e===""||Array.isArray(e)&&!e.length}const be=l.createDomain("response"),xe=S.createFactory(({client:e})=>{const t=be.store({}),o=l.createEvent(),d=l.createEvent(),g=l.createApi(t,{register(m,s){return{...m,[s.fieldId]:s.response}},registerBatch(m,s){return{...m,...s}},clear(m,s){const{[s]:a,...u}=m;return u},clearAll(){return{}}});function p(m,s){if(typeof m=="string"){if(s===void 0)throw new Error("Response is required when registering a single field");g.register({fieldId:m,response:s})}else g.registerBatch(m)}async function n(m){const s=[];return await Promise.allSettled(Object.entries(m).map(async([a,u])=>{let c=u;const y=e.fields.getById(a).getState();if(!y){s.push({fieldId:a,userMessage:`Field '${a}' not found`,systemMessage:`No field with ID '${a}' exists. Available field IDs are: ${Object.keys(e.fields.listStore.getState()).join(",")}.`,value:c});return}if(y.multiple&&(typeof c=="string"||typeof c=="number"||typeof c=="boolean")&&(c=[c]),y.validation&&!C.isEmpty(y.validation)&&!j(c)){const v=await w.evaluateRuleLogic(e,y.validation,{$input:c});if(typeof v=="string"){s.push({fieldId:a,userMessage:v,systemMessage:`Field validation resulted in an error: ${v}.`,value:c});return}if(v===!1){s.push({fieldId:a,userMessage:"This field is invalid",systemMessage:"Field validation resulted in an unspecified error.",value:c});return}}if(y.required&&j(c)){s.push({fieldId:a,userMessage:"This field is required",systemMessage:"Field is required.",value:c});return}if(!y.multiple&&Array.isArray(c)&&c.length>1){s.push({fieldId:a,userMessage:"This field expects a single response",systemMessage:"Field expects a single response.",value:c});return}if(y.options){const v=y.options.map(x=>x.value),b=Array.isArray(c)?c:[c];Array.isArray(c)&&(b.every(x=>v.includes(x))||s.push({fieldId:a,userMessage:"This field expects a valid option",systemMessage:`Field expects a valid option. Valid options are: ${v.join(", ")}`,value:c}))}})),{responsesToCommit:m,validationErrors:s}}async function r(m){const{responsesToCommit:s,validationErrors:a}=await n(m);return a.length?{errors:a}:(g.registerBatch(s),{errors:[]})}const i=t.map(m=>m),f=t.map(m=>Object.keys(m).map(a=>({fieldId:a,value:m[a]})));function k(m){const s=e.fields.getById(m),a=t.map(u=>u[m]||null);return l.combine({f:s,r:a},({f:u,r:c})=>c||(u?.defaultValue?u.defaultValue:null))}function h(m){const s=e.fields.getByName(m);return l.combine({f:s,s:t},({f:a,s:u})=>{const c=a&&u[a.id]||null;return c||(a?.defaultValue?a.defaultValue:null)})}return l.sample({clock:o,target:g.clearAll}),l.sample({clock:d,target:g.clear}),{register:p,clearAll:o,clear:d,commit:r,getResponsesToCommit:n,listStore:f,getAllStore:i,getByFieldId:k,getByFieldName:h}});function Ie(e){return S.invoke(xe,e)}function Ee(){if(B.supportsCryptoRandomUUID())return crypto.randomUUID();const e=Date.now().toString(36),t=Math.random().toString(36).substring(2,15),o=Math.random().toString(36).substring(2,15),d=Math.random().toString(36).substring(2,15);return`${e}-${t}-${o}-${d}`}const De=F.createStorageKey("session","global"),Ae=()=>{const e=F.localStore.get(De);let t;e.isSet()&&(t=e.json());const o=g=>e.set({id:g.id,isUser:g.isUser,identifiers:g.identifiers}),d={id:t?.id??Ee(),isUser:t?.isUser??void 0,identifiers:t?.identifiers??void 0,setIsUser(g){this.isUser=g,o(this)},setIdentifier(g,p){this.identifiers={...this.identifiers,[g]:p},o(this)},removeIdentifier(g){this.identifiers&&(this.identifiers=Object.fromEntries(Object.entries(this.identifiers).filter(([p])=>p!==g)),this.identifiers=Object.keys(this.identifiers).length?this.identifiers:void 0,o(this))}};return o(d),d},Re=()=>B.supportsLocalStorage()?Ae():null;exports.createActionIndex=Fe;exports.createComponentIndex=Q;exports.createExperienceIndex=L;exports.createFeatureIndex=de;exports.createFieldIndex=Se;exports.createFrameworkIndex=ee;exports.createHistory=fe;exports.createPredicateIndex=ce;exports.createResponseIndex=Ie;exports.createStateSnapshot=V;exports.initialiseExperience=P;exports.initialiseExperiences=H;exports.initialiseSession=Re;exports.ping=oe;exports.setupAction=we;exports.setupComponent=W;exports.setupExperience=_;exports.setupFeature=ge;exports.setupField=ve;exports.setupFramework=te;exports.setupPredicate=ue;
|