@syntrologie/runtime-sdk 0.2.19 → 0.2.21
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/CAPABILITIES.md +211 -0
- package/dist/api.js +7 -6
- package/dist/api.js.map +1 -1
- package/dist/bootstrap.d.ts +16 -2
- package/dist/bootstrap.js +63 -14
- package/dist/bootstrap.js.map +1 -1
- package/dist/context/ContextManager.d.ts +66 -0
- package/dist/context/ContextManager.js +268 -0
- package/dist/context/ContextManager.js.map +1 -0
- package/dist/context/index.d.ts +7 -0
- package/dist/context/index.js +7 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/schema.d.ts +360 -0
- package/dist/context/schema.js +50 -0
- package/dist/context/schema.js.map +1 -0
- package/dist/context/types.d.ts +101 -0
- package/dist/context/types.js +8 -0
- package/dist/context/types.js.map +1 -0
- package/dist/decisions/engine.d.ts +43 -0
- package/dist/decisions/engine.js +112 -0
- package/dist/decisions/engine.js.map +1 -0
- package/dist/decisions/index.d.ts +9 -0
- package/dist/decisions/index.js +10 -0
- package/dist/decisions/index.js.map +1 -0
- package/dist/decisions/schema.d.ts +2166 -0
- package/dist/decisions/schema.js +143 -0
- package/dist/decisions/schema.js.map +1 -0
- package/dist/decisions/strategies/rules.d.ts +24 -0
- package/dist/decisions/strategies/rules.js +152 -0
- package/dist/decisions/strategies/rules.js.map +1 -0
- package/dist/decisions/strategies/score.d.ts +10 -0
- package/dist/decisions/strategies/score.js +29 -0
- package/dist/decisions/strategies/score.js.map +1 -0
- package/dist/decisions/types.d.ts +242 -0
- package/dist/decisions/types.js +2 -0
- package/dist/decisions/types.js.map +1 -0
- package/dist/editorLoader.d.ts +10 -0
- package/dist/editorLoader.js +38 -0
- package/dist/editorLoader.js.map +1 -1
- package/dist/events/EventBus.d.ts +59 -0
- package/dist/events/EventBus.js +154 -0
- package/dist/events/EventBus.js.map +1 -0
- package/dist/events/index.d.ts +9 -0
- package/dist/events/index.js +10 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/normalizers/canvas.d.ts +67 -0
- package/dist/events/normalizers/canvas.js +116 -0
- package/dist/events/normalizers/canvas.js.map +1 -0
- package/dist/events/normalizers/posthog.d.ts +29 -0
- package/dist/events/normalizers/posthog.js +155 -0
- package/dist/events/normalizers/posthog.js.map +1 -0
- package/dist/events/schema.d.ts +70 -0
- package/dist/events/schema.js +30 -0
- package/dist/events/schema.js.map +1 -0
- package/dist/events/types.d.ts +73 -0
- package/dist/events/types.js +41 -0
- package/dist/events/types.js.map +1 -0
- package/dist/hooks/useShadowCanvasConfig.d.ts +5 -1
- package/dist/hooks/useShadowCanvasConfig.js +17 -3
- package/dist/hooks/useShadowCanvasConfig.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/overlays/schema.d.ts +48 -48
- package/dist/runtime.d.ts +86 -0
- package/dist/runtime.js +132 -0
- package/dist/runtime.js.map +1 -0
- package/dist/smart-canvas.esm.js +11 -11
- package/dist/smart-canvas.esm.js.map +4 -4
- package/dist/smart-canvas.js +1504 -17
- package/dist/smart-canvas.js.map +4 -4
- package/dist/smart-canvas.min.js +11 -11
- package/dist/smart-canvas.min.js.map +4 -4
- package/dist/state/StateStore.d.ts +41 -0
- package/dist/state/StateStore.js +170 -0
- package/dist/state/StateStore.js.map +1 -0
- package/dist/state/helpers/cooldowns.d.ts +7 -0
- package/dist/state/helpers/cooldowns.js +31 -0
- package/dist/state/helpers/cooldowns.js.map +1 -0
- package/dist/state/helpers/dismissals.d.ts +7 -0
- package/dist/state/helpers/dismissals.js +34 -0
- package/dist/state/helpers/dismissals.js.map +1 -0
- package/dist/state/helpers/frequency.d.ts +8 -0
- package/dist/state/helpers/frequency.js +43 -0
- package/dist/state/helpers/frequency.js.map +1 -0
- package/dist/state/index.d.ts +7 -0
- package/dist/state/index.js +7 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/schema.d.ts +49 -0
- package/dist/state/schema.js +25 -0
- package/dist/state/schema.js.map +1 -0
- package/dist/state/types.d.ts +137 -0
- package/dist/state/types.js +9 -0
- package/dist/state/types.js.map +1 -0
- package/dist/telemetry/adapters/posthog.d.ts +1 -1
- package/dist/telemetry/adapters/posthog.js +1 -1
- package/dist/telemetry/adapters/posthog.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/package.json +2 -2
- package/schema/canvas-config.schema.json +205 -0
- package/schema/runtime-context.schema.json +131 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { StandardEvents, EVENT_SCHEMA_VERSION } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Map PostHog event names to normalized event names.
|
|
4
|
+
*/
|
|
5
|
+
const POSTHOG_EVENT_MAP = {
|
|
6
|
+
// Autocapture events
|
|
7
|
+
$autocapture: "ui.click", // Default autocapture is usually clicks
|
|
8
|
+
$click: StandardEvents.UI_CLICK,
|
|
9
|
+
$scroll: StandardEvents.UI_SCROLL,
|
|
10
|
+
$input: StandardEvents.UI_INPUT,
|
|
11
|
+
$change: StandardEvents.UI_CHANGE,
|
|
12
|
+
$submit: StandardEvents.UI_SUBMIT,
|
|
13
|
+
// Navigation events
|
|
14
|
+
$pageview: StandardEvents.NAV_PAGE_VIEW,
|
|
15
|
+
$pageleave: StandardEvents.NAV_PAGE_LEAVE,
|
|
16
|
+
// Session events
|
|
17
|
+
$session_start: "session.start",
|
|
18
|
+
// Identify events
|
|
19
|
+
$identify: "user.identify",
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Extract the normalized event name from a PostHog event.
|
|
23
|
+
*/
|
|
24
|
+
function getEventName(phEvent) {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
const eventName = phEvent.event;
|
|
27
|
+
// Check mapped events
|
|
28
|
+
if (POSTHOG_EVENT_MAP[eventName]) {
|
|
29
|
+
return POSTHOG_EVENT_MAP[eventName];
|
|
30
|
+
}
|
|
31
|
+
// For autocapture, check the element type to determine the action
|
|
32
|
+
if (eventName === "$autocapture") {
|
|
33
|
+
const tagName = (_a = phEvent.properties) === null || _a === void 0 ? void 0 : _a.$tag_name;
|
|
34
|
+
const eventType = (_b = phEvent.properties) === null || _b === void 0 ? void 0 : _b.$event_type;
|
|
35
|
+
if (eventType === "submit")
|
|
36
|
+
return StandardEvents.UI_SUBMIT;
|
|
37
|
+
if (eventType === "change")
|
|
38
|
+
return StandardEvents.UI_CHANGE;
|
|
39
|
+
if (tagName === "input" || tagName === "textarea")
|
|
40
|
+
return StandardEvents.UI_INPUT;
|
|
41
|
+
return StandardEvents.UI_CLICK;
|
|
42
|
+
}
|
|
43
|
+
// For custom events, prefix with "posthog." to namespace them
|
|
44
|
+
if (!eventName.startsWith("$")) {
|
|
45
|
+
return `posthog.${eventName}`;
|
|
46
|
+
}
|
|
47
|
+
// Pass through other $ events as-is but normalized
|
|
48
|
+
return eventName.replace("$", "posthog.");
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Extract relevant properties from a PostHog event.
|
|
52
|
+
*/
|
|
53
|
+
function extractProps(phEvent) {
|
|
54
|
+
const props = {};
|
|
55
|
+
const phProps = phEvent.properties || {};
|
|
56
|
+
// Element info
|
|
57
|
+
if (phProps.$tag_name)
|
|
58
|
+
props.tagName = phProps.$tag_name;
|
|
59
|
+
if (phProps.$el_text)
|
|
60
|
+
props.elementText = phProps.$el_text;
|
|
61
|
+
if (phProps.$elements)
|
|
62
|
+
props.elements = phProps.$elements;
|
|
63
|
+
// URL/page info
|
|
64
|
+
if (phProps.$current_url)
|
|
65
|
+
props.url = phProps.$current_url;
|
|
66
|
+
if (phProps.$pathname)
|
|
67
|
+
props.pathname = phProps.$pathname;
|
|
68
|
+
if (phProps.$host)
|
|
69
|
+
props.host = phProps.$host;
|
|
70
|
+
// Device/viewport info
|
|
71
|
+
if (phProps.$viewport_width)
|
|
72
|
+
props.viewportWidth = phProps.$viewport_width;
|
|
73
|
+
if (phProps.$viewport_height)
|
|
74
|
+
props.viewportHeight = phProps.$viewport_height;
|
|
75
|
+
// Session info
|
|
76
|
+
if (phProps.$session_id)
|
|
77
|
+
props.sessionId = phProps.$session_id;
|
|
78
|
+
// Scroll-specific properties
|
|
79
|
+
if (phProps.$scroll_depth)
|
|
80
|
+
props.scrollDepth = phProps.$scroll_depth;
|
|
81
|
+
if (phProps.$scroll_percentage)
|
|
82
|
+
props.scrollPercentage = phProps.$scroll_percentage;
|
|
83
|
+
// Original event name
|
|
84
|
+
props.originalEvent = phEvent.event;
|
|
85
|
+
return props;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Normalize a PostHog event into a NormalizedEvent.
|
|
89
|
+
*/
|
|
90
|
+
export function normalizePostHogEvent(phEvent) {
|
|
91
|
+
// Parse timestamp
|
|
92
|
+
let ts;
|
|
93
|
+
if (typeof phEvent.timestamp === "number") {
|
|
94
|
+
ts = phEvent.timestamp;
|
|
95
|
+
}
|
|
96
|
+
else if (typeof phEvent.timestamp === "string") {
|
|
97
|
+
ts = new Date(phEvent.timestamp).getTime();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
ts = Date.now();
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
ts,
|
|
104
|
+
name: getEventName(phEvent),
|
|
105
|
+
source: "posthog",
|
|
106
|
+
props: extractProps(phEvent),
|
|
107
|
+
schemaVersion: EVENT_SCHEMA_VERSION,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Check if a PostHog event should be normalized.
|
|
112
|
+
* Filters out internal/system events that aren't useful for adaptives.
|
|
113
|
+
*/
|
|
114
|
+
export function shouldNormalizeEvent(phEvent) {
|
|
115
|
+
const eventName = phEvent.event;
|
|
116
|
+
// Skip internal PostHog events
|
|
117
|
+
const skipEvents = [
|
|
118
|
+
"$feature_flag_called",
|
|
119
|
+
"$feature_flags",
|
|
120
|
+
"$groups",
|
|
121
|
+
"$groupidentify",
|
|
122
|
+
"$set",
|
|
123
|
+
"$set_once",
|
|
124
|
+
"$unset",
|
|
125
|
+
"$create_alias",
|
|
126
|
+
"$capture_metrics",
|
|
127
|
+
"$performance_event",
|
|
128
|
+
"$web_vitals",
|
|
129
|
+
"$exception",
|
|
130
|
+
"$dead_click",
|
|
131
|
+
"$heatmap",
|
|
132
|
+
];
|
|
133
|
+
if (skipEvents.includes(eventName)) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Create a function that hooks into PostHog's onCapture callback
|
|
140
|
+
* and normalizes events into the EventBus.
|
|
141
|
+
*/
|
|
142
|
+
export function createPostHogNormalizer(publishFn) {
|
|
143
|
+
return (eventName, properties) => {
|
|
144
|
+
const phEvent = {
|
|
145
|
+
event: eventName,
|
|
146
|
+
properties,
|
|
147
|
+
timestamp: Date.now(),
|
|
148
|
+
};
|
|
149
|
+
if (shouldNormalizeEvent(phEvent)) {
|
|
150
|
+
const normalizedEvent = normalizePostHogEvent(phEvent);
|
|
151
|
+
publishFn(normalizedEvent);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=posthog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../../src/events/normalizers/posthog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for event validation.
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
export declare const EventSourceZ: z.ZodEnum<["posthog", "canvas", "derived"]>;
|
|
6
|
+
export declare const NormalizedEventZ: z.ZodObject<{
|
|
7
|
+
ts: z.ZodNumber;
|
|
8
|
+
name: z.ZodString;
|
|
9
|
+
source: z.ZodEnum<["posthog", "canvas", "derived"]>;
|
|
10
|
+
props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
11
|
+
schemaVersion: z.ZodString;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
source: "canvas" | "posthog" | "derived";
|
|
14
|
+
name: string;
|
|
15
|
+
ts: number;
|
|
16
|
+
schemaVersion: string;
|
|
17
|
+
props?: Record<string, unknown> | undefined;
|
|
18
|
+
}, {
|
|
19
|
+
source: "canvas" | "posthog" | "derived";
|
|
20
|
+
name: string;
|
|
21
|
+
ts: number;
|
|
22
|
+
schemaVersion: string;
|
|
23
|
+
props?: Record<string, unknown> | undefined;
|
|
24
|
+
}>;
|
|
25
|
+
export declare const EventFilterZ: z.ZodObject<{
|
|
26
|
+
names: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
27
|
+
patterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
28
|
+
sources: z.ZodOptional<z.ZodArray<z.ZodEnum<["posthog", "canvas", "derived"]>, "many">>;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
names?: string[] | undefined;
|
|
31
|
+
patterns?: string[] | undefined;
|
|
32
|
+
sources?: ("canvas" | "posthog" | "derived")[] | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
names?: string[] | undefined;
|
|
35
|
+
patterns?: string[] | undefined;
|
|
36
|
+
sources?: ("canvas" | "posthog" | "derived")[] | undefined;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Validate a NormalizedEvent object.
|
|
40
|
+
*/
|
|
41
|
+
export declare function validateNormalizedEvent(data: unknown): z.SafeParseReturnType<{
|
|
42
|
+
source: "canvas" | "posthog" | "derived";
|
|
43
|
+
name: string;
|
|
44
|
+
ts: number;
|
|
45
|
+
schemaVersion: string;
|
|
46
|
+
props?: Record<string, unknown> | undefined;
|
|
47
|
+
}, {
|
|
48
|
+
source: "canvas" | "posthog" | "derived";
|
|
49
|
+
name: string;
|
|
50
|
+
ts: number;
|
|
51
|
+
schemaVersion: string;
|
|
52
|
+
props?: Record<string, unknown> | undefined;
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* Validate an EventFilter object.
|
|
56
|
+
*/
|
|
57
|
+
export declare function validateEventFilter(data: unknown): z.SafeParseReturnType<{
|
|
58
|
+
names?: string[] | undefined;
|
|
59
|
+
patterns?: string[] | undefined;
|
|
60
|
+
sources?: ("canvas" | "posthog" | "derived")[] | undefined;
|
|
61
|
+
}, {
|
|
62
|
+
names?: string[] | undefined;
|
|
63
|
+
patterns?: string[] | undefined;
|
|
64
|
+
sources?: ("canvas" | "posthog" | "derived")[] | undefined;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* Type inference from Zod schema.
|
|
68
|
+
*/
|
|
69
|
+
export type NormalizedEventSchema = z.infer<typeof NormalizedEventZ>;
|
|
70
|
+
export type EventFilterSchema = z.infer<typeof EventFilterZ>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for event validation.
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
export const EventSourceZ = z.enum(["posthog", "canvas", "derived"]);
|
|
6
|
+
export const NormalizedEventZ = z.object({
|
|
7
|
+
ts: z.number(),
|
|
8
|
+
name: z.string(),
|
|
9
|
+
source: EventSourceZ,
|
|
10
|
+
props: z.record(z.unknown()).optional(),
|
|
11
|
+
schemaVersion: z.string(),
|
|
12
|
+
});
|
|
13
|
+
export const EventFilterZ = z.object({
|
|
14
|
+
names: z.array(z.string()).optional(),
|
|
15
|
+
patterns: z.array(z.string()).optional(),
|
|
16
|
+
sources: z.array(EventSourceZ).optional(),
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Validate a NormalizedEvent object.
|
|
20
|
+
*/
|
|
21
|
+
export function validateNormalizedEvent(data) {
|
|
22
|
+
return NormalizedEventZ.safeParse(data);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Validate an EventFilter object.
|
|
26
|
+
*/
|
|
27
|
+
export function validateEventFilter(data) {
|
|
28
|
+
return EventFilterZ.safeParse(data);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/events/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAa;IACnD,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event Bus Types
|
|
3
|
+
*
|
|
4
|
+
* The EventBus provides a normalized event stream that unifies events from
|
|
5
|
+
* PostHog autocapture, Canvas events, and derived behavioral signals.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Event sources in the runtime.
|
|
9
|
+
*/
|
|
10
|
+
export type EventSource = "posthog" | "canvas" | "derived";
|
|
11
|
+
/**
|
|
12
|
+
* Normalized event structure for the event bus.
|
|
13
|
+
*/
|
|
14
|
+
export interface NormalizedEvent {
|
|
15
|
+
/** Event timestamp (milliseconds since epoch) */
|
|
16
|
+
ts: number;
|
|
17
|
+
/** Normalized event name (e.g., "ui.click", "canvas.opened") */
|
|
18
|
+
name: string;
|
|
19
|
+
/** Event source */
|
|
20
|
+
source: EventSource;
|
|
21
|
+
/** Event properties/payload */
|
|
22
|
+
props?: Record<string, unknown>;
|
|
23
|
+
/** Schema version for forward compatibility */
|
|
24
|
+
schemaVersion: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Event filter for subscriptions.
|
|
28
|
+
*/
|
|
29
|
+
export interface EventFilter {
|
|
30
|
+
/** Filter by event names (exact match) */
|
|
31
|
+
names?: string[];
|
|
32
|
+
/** Filter by event name patterns (regex) */
|
|
33
|
+
patterns?: string[];
|
|
34
|
+
/** Filter by sources */
|
|
35
|
+
sources?: EventSource[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Callback for event subscriptions.
|
|
39
|
+
*/
|
|
40
|
+
export type EventCallback = (event: NormalizedEvent) => void;
|
|
41
|
+
/**
|
|
42
|
+
* Unsubscribe function returned by subscribe().
|
|
43
|
+
*/
|
|
44
|
+
export type EventUnsubscribe = () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Standard event names used by the runtime.
|
|
47
|
+
*/
|
|
48
|
+
export declare const StandardEvents: {
|
|
49
|
+
readonly UI_CLICK: "ui.click";
|
|
50
|
+
readonly UI_SCROLL: "ui.scroll";
|
|
51
|
+
readonly UI_INPUT: "ui.input";
|
|
52
|
+
readonly UI_CHANGE: "ui.change";
|
|
53
|
+
readonly UI_SUBMIT: "ui.submit";
|
|
54
|
+
readonly NAV_PAGE_VIEW: "nav.page_view";
|
|
55
|
+
readonly NAV_PAGE_LEAVE: "nav.page_leave";
|
|
56
|
+
readonly CANVAS_OPENED: "canvas.opened";
|
|
57
|
+
readonly CANVAS_CLOSED: "canvas.closed";
|
|
58
|
+
readonly TILE_VIEWED: "tile.viewed";
|
|
59
|
+
readonly TILE_EXPANDED: "tile.expanded";
|
|
60
|
+
readonly TILE_COLLAPSED: "tile.collapsed";
|
|
61
|
+
readonly TILE_ACTION: "tile.action";
|
|
62
|
+
readonly OVERLAY_STARTED: "overlay.started";
|
|
63
|
+
readonly OVERLAY_COMPLETED: "overlay.completed";
|
|
64
|
+
readonly OVERLAY_DISMISSED: "overlay.dismissed";
|
|
65
|
+
readonly OVERLAY_STEP_VIEWED: "overlay.step_viewed";
|
|
66
|
+
readonly BEHAVIOR_RAGE_CLICK: "behavior.rage_click";
|
|
67
|
+
readonly BEHAVIOR_HESITATION: "behavior.hesitation";
|
|
68
|
+
readonly BEHAVIOR_CONFUSION: "behavior.confusion";
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Current schema version for normalized events.
|
|
72
|
+
*/
|
|
73
|
+
export declare const EVENT_SCHEMA_VERSION = "1.0.0";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event Bus Types
|
|
3
|
+
*
|
|
4
|
+
* The EventBus provides a normalized event stream that unifies events from
|
|
5
|
+
* PostHog autocapture, Canvas events, and derived behavioral signals.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Standard event names used by the runtime.
|
|
9
|
+
*/
|
|
10
|
+
export const StandardEvents = {
|
|
11
|
+
// UI events (from PostHog autocapture)
|
|
12
|
+
UI_CLICK: "ui.click",
|
|
13
|
+
UI_SCROLL: "ui.scroll",
|
|
14
|
+
UI_INPUT: "ui.input",
|
|
15
|
+
UI_CHANGE: "ui.change",
|
|
16
|
+
UI_SUBMIT: "ui.submit",
|
|
17
|
+
// Navigation events
|
|
18
|
+
NAV_PAGE_VIEW: "nav.page_view",
|
|
19
|
+
NAV_PAGE_LEAVE: "nav.page_leave",
|
|
20
|
+
// Canvas events
|
|
21
|
+
CANVAS_OPENED: "canvas.opened",
|
|
22
|
+
CANVAS_CLOSED: "canvas.closed",
|
|
23
|
+
TILE_VIEWED: "tile.viewed",
|
|
24
|
+
TILE_EXPANDED: "tile.expanded",
|
|
25
|
+
TILE_COLLAPSED: "tile.collapsed",
|
|
26
|
+
TILE_ACTION: "tile.action",
|
|
27
|
+
// Overlay/tour events
|
|
28
|
+
OVERLAY_STARTED: "overlay.started",
|
|
29
|
+
OVERLAY_COMPLETED: "overlay.completed",
|
|
30
|
+
OVERLAY_DISMISSED: "overlay.dismissed",
|
|
31
|
+
OVERLAY_STEP_VIEWED: "overlay.step_viewed",
|
|
32
|
+
// Derived behavioral signals (Phase 3)
|
|
33
|
+
BEHAVIOR_RAGE_CLICK: "behavior.rage_click",
|
|
34
|
+
BEHAVIOR_HESITATION: "behavior.hesitation",
|
|
35
|
+
BEHAVIOR_CONFUSION: "behavior.confusion",
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Current schema version for normalized events.
|
|
39
|
+
*/
|
|
40
|
+
export const EVENT_SCHEMA_VERSION = "1.0.0";
|
|
41
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6CH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,uCAAuC;IACvC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IAEtB,oBAAoB;IACpB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAEhC,gBAAgB;IAChB,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAE1B,sBAAsB;IACtB,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAE1C,uCAAuC;IACvC,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { CanvasConfigFetcher, TileConfig, CanvasThemeConfig, LauncherConfig, RoutesConfig } from "../types";
|
|
2
2
|
import type { Patch } from "../hostPatcher/core/types";
|
|
3
3
|
import type { ExperimentClient } from "../experiments/types";
|
|
4
|
+
import type { SmartCanvasRuntime } from "../runtime";
|
|
4
5
|
export interface UseShadowCanvasConfigOptions {
|
|
5
6
|
fetcher: CanvasConfigFetcher;
|
|
6
7
|
pollIntervalMs?: number;
|
|
8
|
+
/** @deprecated Use runtime instead */
|
|
7
9
|
experiments?: ExperimentClient;
|
|
10
|
+
/** v2 Runtime for activation-based filtering */
|
|
11
|
+
runtime?: SmartCanvasRuntime;
|
|
8
12
|
}
|
|
9
13
|
export interface ShadowCanvasConfigState {
|
|
10
14
|
tiles: TileConfig[];
|
|
@@ -26,4 +30,4 @@ export interface ShadowCanvasConfigState {
|
|
|
26
30
|
/** Route filtering configuration */
|
|
27
31
|
routes?: RoutesConfig;
|
|
28
32
|
}
|
|
29
|
-
export declare function useShadowCanvasConfig({ fetcher, pollIntervalMs, experiments, }: UseShadowCanvasConfigOptions): ShadowCanvasConfigState;
|
|
33
|
+
export declare function useShadowCanvasConfig({ fetcher, pollIntervalMs, experiments, runtime, }: UseShadowCanvasConfigOptions): ShadowCanvasConfigState;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
2
2
|
const sortTiles = (tiles) => [...tiles].sort((a, b) => { var _a, _b; return ((_a = a.order) !== null && _a !== void 0 ? _a : 0) - ((_b = b.order) !== null && _b !== void 0 ? _b : 0); });
|
|
3
|
-
export function useShadowCanvasConfig({ fetcher, pollIntervalMs = 30000, experiments, }) {
|
|
3
|
+
export function useShadowCanvasConfig({ fetcher, pollIntervalMs = 30000, experiments, runtime, }) {
|
|
4
4
|
const [state, setState] = useState({
|
|
5
5
|
tiles: [],
|
|
6
6
|
isLoading: true,
|
|
@@ -10,7 +10,21 @@ export function useShadowCanvasConfig({ fetcher, pollIntervalMs = 30000, experim
|
|
|
10
10
|
setState((prev) => ({ ...prev, isLoading: true, error: undefined }));
|
|
11
11
|
const response = await fetcher();
|
|
12
12
|
let tiles = response.tiles || [];
|
|
13
|
-
if
|
|
13
|
+
// Update runtime routes config if provided
|
|
14
|
+
if (runtime && response.routes) {
|
|
15
|
+
runtime.setRoutes(response.routes);
|
|
16
|
+
}
|
|
17
|
+
// Filter tiles based on activation config (v2) or experiments (v1)
|
|
18
|
+
if (runtime) {
|
|
19
|
+
// v2: Use runtime's filterTiles which handles both activation.strategy and legacy experiment
|
|
20
|
+
tiles = await runtime.filterTiles(tiles);
|
|
21
|
+
// Also apply legacy experiment filter for backward compatibility
|
|
22
|
+
if (experiments) {
|
|
23
|
+
tiles = tiles.filter((tile) => experiments.shouldRenderRectangle(tile));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (experiments) {
|
|
27
|
+
// v1: Use legacy experiment filtering only
|
|
14
28
|
tiles = tiles.filter((tile) => experiments.shouldRenderRectangle(tile));
|
|
15
29
|
}
|
|
16
30
|
setState({
|
|
@@ -34,7 +48,7 @@ export function useShadowCanvasConfig({ fetcher, pollIntervalMs = 30000, experim
|
|
|
34
48
|
error: err instanceof Error ? err.message : "Unknown error",
|
|
35
49
|
}));
|
|
36
50
|
}
|
|
37
|
-
}, [experiments, fetcher]);
|
|
51
|
+
}, [experiments, fetcher, runtime]);
|
|
38
52
|
useEffect(() => {
|
|
39
53
|
load();
|
|
40
54
|
if (!pollIntervalMs)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useShadowCanvasConfig.js","sourceRoot":"","sources":["../../src/hooks/useShadowCanvasConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useShadowCanvasConfig.js","sourceRoot":"","sources":["../../src/hooks/useShadowCanvasConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,12 @@ export * from "./overlays/types";
|
|
|
15
15
|
export * from "./overlays/schema";
|
|
16
16
|
export * from "./overlays/fetcher";
|
|
17
17
|
export * from "./metrics";
|
|
18
|
+
export * from "./context";
|
|
19
|
+
export * from "./events";
|
|
20
|
+
export * from "./state";
|
|
21
|
+
export * from "./decisions";
|
|
22
|
+
export { createSmartCanvasRuntime, RUNTIME_VERSION, } from "./runtime";
|
|
23
|
+
export type { SmartCanvasRuntime, SmartCanvasRuntimeOptions, RuntimeMode, } from "./runtime";
|
|
18
24
|
export { Syntro } from "./bootstrap";
|
|
19
25
|
export type { SyntroInitOptions, SyntroInitResult } from "./bootstrap";
|
|
20
26
|
export { encodeToken, decodeToken } from "./token";
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,22 @@ export * from "./overlays/schema";
|
|
|
16
16
|
export * from "./overlays/fetcher";
|
|
17
17
|
// Metrics for session-based targeting
|
|
18
18
|
export * from "./metrics";
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// v2 Runtime Modules
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// Context - Page/session/viewport state management
|
|
23
|
+
export * from "./context";
|
|
24
|
+
// Events - Normalized event stream
|
|
25
|
+
export * from "./events";
|
|
26
|
+
// State - Persistent state storage with helpers
|
|
27
|
+
export * from "./state";
|
|
28
|
+
// Decisions - Strategy-based conditional rendering
|
|
29
|
+
export * from "./decisions";
|
|
30
|
+
// Unified runtime
|
|
31
|
+
export { createSmartCanvasRuntime, RUNTIME_VERSION, } from "./runtime";
|
|
32
|
+
// ============================================================================
|
|
19
33
|
// Single-token initialization
|
|
34
|
+
// ============================================================================
|
|
20
35
|
export { Syntro } from "./bootstrap";
|
|
21
36
|
export { encodeToken, decodeToken } from "./token";
|
|
22
37
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,sCAAsC;AACtC,cAAc,WAAW,CAAC;AAE1B,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,sCAAsC;AACtC,cAAc,WAAW,CAAC;AAE1B,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,mDAAmD;AACnD,cAAc,WAAW,CAAC;AAE1B,mCAAmC;AACnC,cAAc,UAAU,CAAC;AAEzB,gDAAgD;AAChD,cAAc,SAAS,CAAC;AAExB,mDAAmD;AACnD,cAAc,aAAa,CAAC;AAE5B,kBAAkB;AAClB,OAAO,EACL,wBAAwB,EACxB,eAAe,GAChB,MAAM,WAAW,CAAC;AAOnB,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|