@talkfurther/events 0.1.0 → 0.2.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/events.d.ts +50 -0
- package/dist/index.cjs +16 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +14 -0
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +16 -0
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +16 -0
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/events.d.ts
CHANGED
|
@@ -178,4 +178,54 @@ export declare const analyticsEvents: {
|
|
|
178
178
|
tourDate?: string | undefined;
|
|
179
179
|
}>;
|
|
180
180
|
};
|
|
181
|
+
readonly event_rsvp: {
|
|
182
|
+
readonly defaultName: "further.event_rsvp";
|
|
183
|
+
readonly description: "Fired when a user RSVPs to a community event";
|
|
184
|
+
readonly schema: z.ZodObject<{
|
|
185
|
+
leadId: z.ZodNumber;
|
|
186
|
+
eventId: z.ZodNumber;
|
|
187
|
+
eventName: z.ZodString;
|
|
188
|
+
channelSource: z.ZodString;
|
|
189
|
+
formId: z.ZodOptional<z.ZodString>;
|
|
190
|
+
formName: z.ZodOptional<z.ZodString>;
|
|
191
|
+
chatId: z.ZodOptional<z.ZodNumber>;
|
|
192
|
+
chatName: z.ZodOptional<z.ZodString>;
|
|
193
|
+
communityId: z.ZodNumber;
|
|
194
|
+
communityName: z.ZodString;
|
|
195
|
+
timestamp: z.ZodString;
|
|
196
|
+
pageUrl: z.ZodString;
|
|
197
|
+
visitorId: z.ZodString;
|
|
198
|
+
visitId: z.ZodString;
|
|
199
|
+
}, "strip", z.ZodTypeAny, {
|
|
200
|
+
timestamp: string;
|
|
201
|
+
pageUrl: string;
|
|
202
|
+
visitorId: string;
|
|
203
|
+
visitId: string;
|
|
204
|
+
communityId: number;
|
|
205
|
+
communityName: string;
|
|
206
|
+
leadId: number;
|
|
207
|
+
channelSource: string;
|
|
208
|
+
eventId: number;
|
|
209
|
+
eventName: string;
|
|
210
|
+
formId?: string | undefined;
|
|
211
|
+
formName?: string | undefined;
|
|
212
|
+
chatId?: number | undefined;
|
|
213
|
+
chatName?: string | undefined;
|
|
214
|
+
}, {
|
|
215
|
+
timestamp: string;
|
|
216
|
+
pageUrl: string;
|
|
217
|
+
visitorId: string;
|
|
218
|
+
visitId: string;
|
|
219
|
+
communityId: number;
|
|
220
|
+
communityName: string;
|
|
221
|
+
leadId: number;
|
|
222
|
+
channelSource: string;
|
|
223
|
+
eventId: number;
|
|
224
|
+
eventName: string;
|
|
225
|
+
formId?: string | undefined;
|
|
226
|
+
formName?: string | undefined;
|
|
227
|
+
chatId?: number | undefined;
|
|
228
|
+
chatName?: string | undefined;
|
|
229
|
+
}>;
|
|
230
|
+
};
|
|
181
231
|
};
|
package/dist/index.cjs
CHANGED
|
@@ -68,6 +68,22 @@ const analyticsEvents = {
|
|
|
68
68
|
chatId: zod.z.number().int().optional().describe("Chat/VSA ID, if the tour was scheduled from a chat widget"),
|
|
69
69
|
chatName: zod.z.string().optional().describe("Chat/VSA name, if the tour was scheduled from a chat widget")
|
|
70
70
|
})
|
|
71
|
+
},
|
|
72
|
+
event_rsvp: {
|
|
73
|
+
defaultName: "further.event_rsvp",
|
|
74
|
+
description: "Fired when a user RSVPs to a community event",
|
|
75
|
+
schema: zod.z.object({
|
|
76
|
+
...baseEvent,
|
|
77
|
+
...communityEvent,
|
|
78
|
+
leadId: zod.z.number().int().describe("Internal lead ID for CRM correlation"),
|
|
79
|
+
eventId: zod.z.number().int().describe("Community event ID"),
|
|
80
|
+
eventName: zod.z.string().describe("Community event name"),
|
|
81
|
+
channelSource: zod.z.string().describe("Channel source (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)"),
|
|
82
|
+
formId: zod.z.string().optional().describe("Form ID, if the RSVP came from a form"),
|
|
83
|
+
formName: zod.z.string().optional().describe("Form name, if the RSVP came from a form"),
|
|
84
|
+
chatId: zod.z.number().int().optional().describe("Chat/VSA ID, if the RSVP came from a chat widget"),
|
|
85
|
+
chatName: zod.z.string().optional().describe("Chat/VSA name, if the RSVP came from a chat widget")
|
|
86
|
+
})
|
|
71
87
|
}
|
|
72
88
|
};
|
|
73
89
|
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../events.ts","../index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst baseEvent = {\n timestamp: z.string().datetime().describe(\"ISO 8601 timestamp of when the event occurred\"),\n pageUrl: z.string().url().describe(\"URL of the page where the event occurred\"),\n visitorId: z.string().describe(\"Anonymous visitor UUID for cross-event correlation\"),\n visitId: z.string().describe(\"Visit/session UUID for session-level funnel analysis\"),\n};\n\nconst communityEvent = {\n communityId: z.number().int().describe(\"ID of the community associated with the event\"),\n communityName: z.string().describe(\"Name of the community associated with the event\"),\n};\n\nexport const analyticsEvents = {\n form_viewed: {\n defaultName: \"further.form_viewed\",\n description: \"Fired when a form becomes visible to the user\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_started: {\n defaultName: \"further.form_started\",\n description: \"Fired when the user interacts with a form field for the first time\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_submitted: {\n defaultName: \"further.form_submitted\",\n description: \"Fired when a form is successfully submitted\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n fieldCount: z.number().int().describe(\"Number of fields submitted\"),\n }),\n },\n\n lead_created: {\n defaultName: \"further.lead_created\",\n description: \"Fired when a new lead is captured via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the lead came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the lead came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the lead came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the lead came from a chat widget\"),\n }),\n },\n tour_scheduled: {\n defaultName: \"further.tour_scheduled\",\n description: \"Fired when a tour is scheduled via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n tourDate: z.string().optional().describe(\"ISO 8601 tour start date/time. Optional because the tour date may not always be parseable from user input.\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the tour was scheduled from a form\"),\n formName: z.string().optional().describe(\"Form name, if the tour was scheduled from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the tour was scheduled from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the tour was scheduled from a chat widget\"),\n }),\n },\n} as const;\n","import { z } from \"zod\";\nimport { analyticsEvents } from \"./events\";\n\nexport { analyticsEvents } from \"./events\";\n\nexport type AnalyticsEventName = keyof typeof analyticsEvents;\n\nexport type AnalyticsEventData<T extends AnalyticsEventName> = z.infer<(typeof analyticsEvents)[T][\"schema\"]>;\n\nexport function getEventFields(eventKey: AnalyticsEventName) {\n const shape = analyticsEvents[eventKey].schema.shape;\n return Object.entries(shape).map(([name, field]) => ({\n name,\n description: (field as z.ZodTypeAny).description || \"\",\n required: !(field as z.ZodTypeAny).isOptional(),\n }));\n}\n"],"names":["baseEvent","timestamp","z","string","datetime","describe","pageUrl","url","visitorId","visitId","communityEvent","communityId","number","int","communityName","analyticsEvents","form_viewed","defaultName","description","schema","object","formId","formName","form_started","form_submitted","fieldCount","lead_created","leadId","channelSource","optional","chatId","chatName","tour_scheduled","tourDate","getEventFields","eventKey","shape","Object","entries","map","_ref","name","field","required","isOptional"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../events.ts","../index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst baseEvent = {\n timestamp: z.string().datetime().describe(\"ISO 8601 timestamp of when the event occurred\"),\n pageUrl: z.string().url().describe(\"URL of the page where the event occurred\"),\n visitorId: z.string().describe(\"Anonymous visitor UUID for cross-event correlation\"),\n visitId: z.string().describe(\"Visit/session UUID for session-level funnel analysis\"),\n};\n\nconst communityEvent = {\n communityId: z.number().int().describe(\"ID of the community associated with the event\"),\n communityName: z.string().describe(\"Name of the community associated with the event\"),\n};\n\nexport const analyticsEvents = {\n form_viewed: {\n defaultName: \"further.form_viewed\",\n description: \"Fired when a form becomes visible to the user\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_started: {\n defaultName: \"further.form_started\",\n description: \"Fired when the user interacts with a form field for the first time\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_submitted: {\n defaultName: \"further.form_submitted\",\n description: \"Fired when a form is successfully submitted\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n fieldCount: z.number().int().describe(\"Number of fields submitted\"),\n }),\n },\n\n lead_created: {\n defaultName: \"further.lead_created\",\n description: \"Fired when a new lead is captured via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the lead came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the lead came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the lead came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the lead came from a chat widget\"),\n }),\n },\n tour_scheduled: {\n defaultName: \"further.tour_scheduled\",\n description: \"Fired when a tour is scheduled via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n tourDate: z.string().optional().describe(\"ISO 8601 tour start date/time. Optional because the tour date may not always be parseable from user input.\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the tour was scheduled from a form\"),\n formName: z.string().optional().describe(\"Form name, if the tour was scheduled from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the tour was scheduled from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the tour was scheduled from a chat widget\"),\n }),\n },\n event_rsvp: {\n defaultName: \"further.event_rsvp\",\n description: \"Fired when a user RSVPs to a community event\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n eventId: z.number().int().describe(\"Community event ID\"),\n eventName: z.string().describe(\"Community event name\"),\n channelSource: z.string().describe(\"Channel source (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the RSVP came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the RSVP came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the RSVP came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the RSVP came from a chat widget\"),\n }),\n },\n} as const;\n","import { z } from \"zod\";\nimport { analyticsEvents } from \"./events\";\n\nexport { analyticsEvents } from \"./events\";\n\nexport type AnalyticsEventName = keyof typeof analyticsEvents;\n\nexport type AnalyticsEventData<T extends AnalyticsEventName> = z.infer<(typeof analyticsEvents)[T][\"schema\"]>;\n\nexport function getEventFields(eventKey: AnalyticsEventName) {\n const shape = analyticsEvents[eventKey].schema.shape;\n return Object.entries(shape).map(([name, field]) => ({\n name,\n description: (field as z.ZodTypeAny).description || \"\",\n required: !(field as z.ZodTypeAny).isOptional(),\n }));\n}\n"],"names":["baseEvent","timestamp","z","string","datetime","describe","pageUrl","url","visitorId","visitId","communityEvent","communityId","number","int","communityName","analyticsEvents","form_viewed","defaultName","description","schema","object","formId","formName","form_started","form_submitted","fieldCount","lead_created","leadId","channelSource","optional","chatId","chatName","tour_scheduled","tourDate","event_rsvp","eventId","eventName","getEventFields","eventKey","shape","Object","entries","map","_ref","name","field","required","isOptional"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
|
@@ -70,6 +70,20 @@ const analyticsEvents = {
|
|
|
70
70
|
chatId: z.number().int().optional().describe("Chat/VSA ID, if the tour was scheduled from a chat widget"),
|
|
71
71
|
chatName: z.string().optional().describe("Chat/VSA name, if the tour was scheduled from a chat widget")
|
|
72
72
|
}))
|
|
73
|
+
},
|
|
74
|
+
event_rsvp: {
|
|
75
|
+
defaultName: "further.event_rsvp",
|
|
76
|
+
description: "Fired when a user RSVPs to a community event",
|
|
77
|
+
schema: z.object(_extends({}, baseEvent, communityEvent, {
|
|
78
|
+
leadId: z.number().int().describe("Internal lead ID for CRM correlation"),
|
|
79
|
+
eventId: z.number().int().describe("Community event ID"),
|
|
80
|
+
eventName: z.string().describe("Community event name"),
|
|
81
|
+
channelSource: z.string().describe("Channel source (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)"),
|
|
82
|
+
formId: z.string().optional().describe("Form ID, if the RSVP came from a form"),
|
|
83
|
+
formName: z.string().optional().describe("Form name, if the RSVP came from a form"),
|
|
84
|
+
chatId: z.number().int().optional().describe("Chat/VSA ID, if the RSVP came from a chat widget"),
|
|
85
|
+
chatName: z.string().optional().describe("Chat/VSA name, if the RSVP came from a chat widget")
|
|
86
|
+
}))
|
|
73
87
|
}
|
|
74
88
|
};
|
|
75
89
|
|
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../events.ts","../index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst baseEvent = {\n timestamp: z.string().datetime().describe(\"ISO 8601 timestamp of when the event occurred\"),\n pageUrl: z.string().url().describe(\"URL of the page where the event occurred\"),\n visitorId: z.string().describe(\"Anonymous visitor UUID for cross-event correlation\"),\n visitId: z.string().describe(\"Visit/session UUID for session-level funnel analysis\"),\n};\n\nconst communityEvent = {\n communityId: z.number().int().describe(\"ID of the community associated with the event\"),\n communityName: z.string().describe(\"Name of the community associated with the event\"),\n};\n\nexport const analyticsEvents = {\n form_viewed: {\n defaultName: \"further.form_viewed\",\n description: \"Fired when a form becomes visible to the user\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_started: {\n defaultName: \"further.form_started\",\n description: \"Fired when the user interacts with a form field for the first time\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_submitted: {\n defaultName: \"further.form_submitted\",\n description: \"Fired when a form is successfully submitted\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n fieldCount: z.number().int().describe(\"Number of fields submitted\"),\n }),\n },\n\n lead_created: {\n defaultName: \"further.lead_created\",\n description: \"Fired when a new lead is captured via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the lead came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the lead came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the lead came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the lead came from a chat widget\"),\n }),\n },\n tour_scheduled: {\n defaultName: \"further.tour_scheduled\",\n description: \"Fired when a tour is scheduled via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n tourDate: z.string().optional().describe(\"ISO 8601 tour start date/time. Optional because the tour date may not always be parseable from user input.\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the tour was scheduled from a form\"),\n formName: z.string().optional().describe(\"Form name, if the tour was scheduled from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the tour was scheduled from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the tour was scheduled from a chat widget\"),\n }),\n },\n} as const;\n","import { z } from \"zod\";\nimport { analyticsEvents } from \"./events\";\n\nexport { analyticsEvents } from \"./events\";\n\nexport type AnalyticsEventName = keyof typeof analyticsEvents;\n\nexport type AnalyticsEventData<T extends AnalyticsEventName> = z.infer<(typeof analyticsEvents)[T][\"schema\"]>;\n\nexport function getEventFields(eventKey: AnalyticsEventName) {\n const shape = analyticsEvents[eventKey].schema.shape;\n return Object.entries(shape).map(([name, field]) => ({\n name,\n description: (field as z.ZodTypeAny).description || \"\",\n required: !(field as z.ZodTypeAny).isOptional(),\n }));\n}\n"],"names":["baseEvent","timestamp","z","string","datetime","describe","pageUrl","url","visitorId","visitId","communityEvent","communityId","number","int","communityName","analyticsEvents","form_viewed","defaultName","description","schema","object","_extends","formId","formName","form_started","form_submitted","fieldCount","lead_created","leadId","channelSource","optional","chatId","chatName","tour_scheduled","tourDate","getEventFields","eventKey","shape","Object","entries","map","name","field","required","isOptional"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../events.ts","../index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst baseEvent = {\n timestamp: z.string().datetime().describe(\"ISO 8601 timestamp of when the event occurred\"),\n pageUrl: z.string().url().describe(\"URL of the page where the event occurred\"),\n visitorId: z.string().describe(\"Anonymous visitor UUID for cross-event correlation\"),\n visitId: z.string().describe(\"Visit/session UUID for session-level funnel analysis\"),\n};\n\nconst communityEvent = {\n communityId: z.number().int().describe(\"ID of the community associated with the event\"),\n communityName: z.string().describe(\"Name of the community associated with the event\"),\n};\n\nexport const analyticsEvents = {\n form_viewed: {\n defaultName: \"further.form_viewed\",\n description: \"Fired when a form becomes visible to the user\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_started: {\n defaultName: \"further.form_started\",\n description: \"Fired when the user interacts with a form field for the first time\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_submitted: {\n defaultName: \"further.form_submitted\",\n description: \"Fired when a form is successfully submitted\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n fieldCount: z.number().int().describe(\"Number of fields submitted\"),\n }),\n },\n\n lead_created: {\n defaultName: \"further.lead_created\",\n description: \"Fired when a new lead is captured via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the lead came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the lead came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the lead came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the lead came from a chat widget\"),\n }),\n },\n tour_scheduled: {\n defaultName: \"further.tour_scheduled\",\n description: \"Fired when a tour is scheduled via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n tourDate: z.string().optional().describe(\"ISO 8601 tour start date/time. Optional because the tour date may not always be parseable from user input.\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the tour was scheduled from a form\"),\n formName: z.string().optional().describe(\"Form name, if the tour was scheduled from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the tour was scheduled from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the tour was scheduled from a chat widget\"),\n }),\n },\n event_rsvp: {\n defaultName: \"further.event_rsvp\",\n description: \"Fired when a user RSVPs to a community event\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n eventId: z.number().int().describe(\"Community event ID\"),\n eventName: z.string().describe(\"Community event name\"),\n channelSource: z.string().describe(\"Channel source (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the RSVP came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the RSVP came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the RSVP came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the RSVP came from a chat widget\"),\n }),\n },\n} as const;\n","import { z } from \"zod\";\nimport { analyticsEvents } from \"./events\";\n\nexport { analyticsEvents } from \"./events\";\n\nexport type AnalyticsEventName = keyof typeof analyticsEvents;\n\nexport type AnalyticsEventData<T extends AnalyticsEventName> = z.infer<(typeof analyticsEvents)[T][\"schema\"]>;\n\nexport function getEventFields(eventKey: AnalyticsEventName) {\n const shape = analyticsEvents[eventKey].schema.shape;\n return Object.entries(shape).map(([name, field]) => ({\n name,\n description: (field as z.ZodTypeAny).description || \"\",\n required: !(field as z.ZodTypeAny).isOptional(),\n }));\n}\n"],"names":["baseEvent","timestamp","z","string","datetime","describe","pageUrl","url","visitorId","visitId","communityEvent","communityId","number","int","communityName","analyticsEvents","form_viewed","defaultName","description","schema","object","_extends","formId","formName","form_started","form_submitted","fieldCount","lead_created","leadId","channelSource","optional","chatId","chatName","tour_scheduled","tourDate","event_rsvp","eventId","eventName","getEventFields","eventKey","shape","Object","entries","map","name","field","required","isOptional"],"mappings":"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"}
|
package/dist/index.module.js
CHANGED
|
@@ -68,6 +68,22 @@ const analyticsEvents = {
|
|
|
68
68
|
chatId: z.number().int().optional().describe("Chat/VSA ID, if the tour was scheduled from a chat widget"),
|
|
69
69
|
chatName: z.string().optional().describe("Chat/VSA name, if the tour was scheduled from a chat widget")
|
|
70
70
|
})
|
|
71
|
+
},
|
|
72
|
+
event_rsvp: {
|
|
73
|
+
defaultName: "further.event_rsvp",
|
|
74
|
+
description: "Fired when a user RSVPs to a community event",
|
|
75
|
+
schema: z.object({
|
|
76
|
+
...baseEvent,
|
|
77
|
+
...communityEvent,
|
|
78
|
+
leadId: z.number().int().describe("Internal lead ID for CRM correlation"),
|
|
79
|
+
eventId: z.number().int().describe("Community event ID"),
|
|
80
|
+
eventName: z.string().describe("Community event name"),
|
|
81
|
+
channelSource: z.string().describe("Channel source (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)"),
|
|
82
|
+
formId: z.string().optional().describe("Form ID, if the RSVP came from a form"),
|
|
83
|
+
formName: z.string().optional().describe("Form name, if the RSVP came from a form"),
|
|
84
|
+
chatId: z.number().int().optional().describe("Chat/VSA ID, if the RSVP came from a chat widget"),
|
|
85
|
+
chatName: z.string().optional().describe("Chat/VSA name, if the RSVP came from a chat widget")
|
|
86
|
+
})
|
|
71
87
|
}
|
|
72
88
|
};
|
|
73
89
|
|
package/dist/index.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.js","sources":["../events.ts","../index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst baseEvent = {\n timestamp: z.string().datetime().describe(\"ISO 8601 timestamp of when the event occurred\"),\n pageUrl: z.string().url().describe(\"URL of the page where the event occurred\"),\n visitorId: z.string().describe(\"Anonymous visitor UUID for cross-event correlation\"),\n visitId: z.string().describe(\"Visit/session UUID for session-level funnel analysis\"),\n};\n\nconst communityEvent = {\n communityId: z.number().int().describe(\"ID of the community associated with the event\"),\n communityName: z.string().describe(\"Name of the community associated with the event\"),\n};\n\nexport const analyticsEvents = {\n form_viewed: {\n defaultName: \"further.form_viewed\",\n description: \"Fired when a form becomes visible to the user\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_started: {\n defaultName: \"further.form_started\",\n description: \"Fired when the user interacts with a form field for the first time\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_submitted: {\n defaultName: \"further.form_submitted\",\n description: \"Fired when a form is successfully submitted\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n fieldCount: z.number().int().describe(\"Number of fields submitted\"),\n }),\n },\n\n lead_created: {\n defaultName: \"further.lead_created\",\n description: \"Fired when a new lead is captured via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the lead came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the lead came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the lead came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the lead came from a chat widget\"),\n }),\n },\n tour_scheduled: {\n defaultName: \"further.tour_scheduled\",\n description: \"Fired when a tour is scheduled via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n tourDate: z.string().optional().describe(\"ISO 8601 tour start date/time. Optional because the tour date may not always be parseable from user input.\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the tour was scheduled from a form\"),\n formName: z.string().optional().describe(\"Form name, if the tour was scheduled from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the tour was scheduled from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the tour was scheduled from a chat widget\"),\n }),\n },\n} as const;\n","import { z } from \"zod\";\nimport { analyticsEvents } from \"./events\";\n\nexport { analyticsEvents } from \"./events\";\n\nexport type AnalyticsEventName = keyof typeof analyticsEvents;\n\nexport type AnalyticsEventData<T extends AnalyticsEventName> = z.infer<(typeof analyticsEvents)[T][\"schema\"]>;\n\nexport function getEventFields(eventKey: AnalyticsEventName) {\n const shape = analyticsEvents[eventKey].schema.shape;\n return Object.entries(shape).map(([name, field]) => ({\n name,\n description: (field as z.ZodTypeAny).description || \"\",\n required: !(field as z.ZodTypeAny).isOptional(),\n }));\n}\n"],"names":["baseEvent","timestamp","z","string","datetime","describe","pageUrl","url","visitorId","visitId","communityEvent","communityId","number","int","communityName","analyticsEvents","form_viewed","defaultName","description","schema","object","formId","formName","form_started","form_submitted","fieldCount","lead_created","leadId","channelSource","optional","chatId","chatName","tour_scheduled","tourDate","getEventFields","eventKey","shape","Object","entries","map","_ref","name","field","required","isOptional"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.module.js","sources":["../events.ts","../index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst baseEvent = {\n timestamp: z.string().datetime().describe(\"ISO 8601 timestamp of when the event occurred\"),\n pageUrl: z.string().url().describe(\"URL of the page where the event occurred\"),\n visitorId: z.string().describe(\"Anonymous visitor UUID for cross-event correlation\"),\n visitId: z.string().describe(\"Visit/session UUID for session-level funnel analysis\"),\n};\n\nconst communityEvent = {\n communityId: z.number().int().describe(\"ID of the community associated with the event\"),\n communityName: z.string().describe(\"Name of the community associated with the event\"),\n};\n\nexport const analyticsEvents = {\n form_viewed: {\n defaultName: \"further.form_viewed\",\n description: \"Fired when a form becomes visible to the user\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_started: {\n defaultName: \"further.form_started\",\n description: \"Fired when the user interacts with a form field for the first time\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_submitted: {\n defaultName: \"further.form_submitted\",\n description: \"Fired when a form is successfully submitted\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n fieldCount: z.number().int().describe(\"Number of fields submitted\"),\n }),\n },\n\n lead_created: {\n defaultName: \"further.lead_created\",\n description: \"Fired when a new lead is captured via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the lead came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the lead came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the lead came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the lead came from a chat widget\"),\n }),\n },\n tour_scheduled: {\n defaultName: \"further.tour_scheduled\",\n description: \"Fired when a tour is scheduled via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n tourDate: z.string().optional().describe(\"ISO 8601 tour start date/time. Optional because the tour date may not always be parseable from user input.\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the tour was scheduled from a form\"),\n formName: z.string().optional().describe(\"Form name, if the tour was scheduled from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the tour was scheduled from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the tour was scheduled from a chat widget\"),\n }),\n },\n event_rsvp: {\n defaultName: \"further.event_rsvp\",\n description: \"Fired when a user RSVPs to a community event\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n eventId: z.number().int().describe(\"Community event ID\"),\n eventName: z.string().describe(\"Community event name\"),\n channelSource: z.string().describe(\"Channel source (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the RSVP came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the RSVP came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the RSVP came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the RSVP came from a chat widget\"),\n }),\n },\n} as const;\n","import { z } from \"zod\";\nimport { analyticsEvents } from \"./events\";\n\nexport { analyticsEvents } from \"./events\";\n\nexport type AnalyticsEventName = keyof typeof analyticsEvents;\n\nexport type AnalyticsEventData<T extends AnalyticsEventName> = z.infer<(typeof analyticsEvents)[T][\"schema\"]>;\n\nexport function getEventFields(eventKey: AnalyticsEventName) {\n const shape = analyticsEvents[eventKey].schema.shape;\n return Object.entries(shape).map(([name, field]) => ({\n name,\n description: (field as z.ZodTypeAny).description || \"\",\n required: !(field as z.ZodTypeAny).isOptional(),\n }));\n}\n"],"names":["baseEvent","timestamp","z","string","datetime","describe","pageUrl","url","visitorId","visitId","communityEvent","communityId","number","int","communityName","analyticsEvents","form_viewed","defaultName","description","schema","object","formId","formName","form_started","form_submitted","fieldCount","lead_created","leadId","channelSource","optional","chatId","chatName","tour_scheduled","tourDate","event_rsvp","eventId","eventName","getEventFields","eventKey","shape","Object","entries","map","_ref","name","field","required","isOptional"],"mappings":"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"}
|
package/dist/index.umd.js
CHANGED
|
@@ -71,6 +71,22 @@
|
|
|
71
71
|
chatId: zod.z.number().int().optional().describe("Chat/VSA ID, if the tour was scheduled from a chat widget"),
|
|
72
72
|
chatName: zod.z.string().optional().describe("Chat/VSA name, if the tour was scheduled from a chat widget")
|
|
73
73
|
})
|
|
74
|
+
},
|
|
75
|
+
event_rsvp: {
|
|
76
|
+
defaultName: "further.event_rsvp",
|
|
77
|
+
description: "Fired when a user RSVPs to a community event",
|
|
78
|
+
schema: zod.z.object({
|
|
79
|
+
...baseEvent,
|
|
80
|
+
...communityEvent,
|
|
81
|
+
leadId: zod.z.number().int().describe("Internal lead ID for CRM correlation"),
|
|
82
|
+
eventId: zod.z.number().int().describe("Community event ID"),
|
|
83
|
+
eventName: zod.z.string().describe("Community event name"),
|
|
84
|
+
channelSource: zod.z.string().describe("Channel source (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)"),
|
|
85
|
+
formId: zod.z.string().optional().describe("Form ID, if the RSVP came from a form"),
|
|
86
|
+
formName: zod.z.string().optional().describe("Form name, if the RSVP came from a form"),
|
|
87
|
+
chatId: zod.z.number().int().optional().describe("Chat/VSA ID, if the RSVP came from a chat widget"),
|
|
88
|
+
chatName: zod.z.string().optional().describe("Chat/VSA name, if the RSVP came from a chat widget")
|
|
89
|
+
})
|
|
74
90
|
}
|
|
75
91
|
};
|
|
76
92
|
|
package/dist/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../events.ts","../index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst baseEvent = {\n timestamp: z.string().datetime().describe(\"ISO 8601 timestamp of when the event occurred\"),\n pageUrl: z.string().url().describe(\"URL of the page where the event occurred\"),\n visitorId: z.string().describe(\"Anonymous visitor UUID for cross-event correlation\"),\n visitId: z.string().describe(\"Visit/session UUID for session-level funnel analysis\"),\n};\n\nconst communityEvent = {\n communityId: z.number().int().describe(\"ID of the community associated with the event\"),\n communityName: z.string().describe(\"Name of the community associated with the event\"),\n};\n\nexport const analyticsEvents = {\n form_viewed: {\n defaultName: \"further.form_viewed\",\n description: \"Fired when a form becomes visible to the user\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_started: {\n defaultName: \"further.form_started\",\n description: \"Fired when the user interacts with a form field for the first time\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_submitted: {\n defaultName: \"further.form_submitted\",\n description: \"Fired when a form is successfully submitted\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n fieldCount: z.number().int().describe(\"Number of fields submitted\"),\n }),\n },\n\n lead_created: {\n defaultName: \"further.lead_created\",\n description: \"Fired when a new lead is captured via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the lead came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the lead came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the lead came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the lead came from a chat widget\"),\n }),\n },\n tour_scheduled: {\n defaultName: \"further.tour_scheduled\",\n description: \"Fired when a tour is scheduled via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n tourDate: z.string().optional().describe(\"ISO 8601 tour start date/time. Optional because the tour date may not always be parseable from user input.\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the tour was scheduled from a form\"),\n formName: z.string().optional().describe(\"Form name, if the tour was scheduled from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the tour was scheduled from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the tour was scheduled from a chat widget\"),\n }),\n },\n} as const;\n","import { z } from \"zod\";\nimport { analyticsEvents } from \"./events\";\n\nexport { analyticsEvents } from \"./events\";\n\nexport type AnalyticsEventName = keyof typeof analyticsEvents;\n\nexport type AnalyticsEventData<T extends AnalyticsEventName> = z.infer<(typeof analyticsEvents)[T][\"schema\"]>;\n\nexport function getEventFields(eventKey: AnalyticsEventName) {\n const shape = analyticsEvents[eventKey].schema.shape;\n return Object.entries(shape).map(([name, field]) => ({\n name,\n description: (field as z.ZodTypeAny).description || \"\",\n required: !(field as z.ZodTypeAny).isOptional(),\n }));\n}\n"],"names":["baseEvent","timestamp","z","string","datetime","describe","pageUrl","url","visitorId","visitId","communityEvent","communityId","number","int","communityName","analyticsEvents","form_viewed","defaultName","description","schema","object","formId","formName","form_started","form_submitted","fieldCount","lead_created","leadId","channelSource","optional","chatId","chatName","tour_scheduled","tourDate","getEventFields","eventKey","shape","Object","entries","map","_ref","name","field","required","isOptional"],"mappings":";;;;;EAEA,MAAMA,SAAS,GAAG;EAChBC,EAAAA,SAAS,EAAEC,KAAC,CAACC,MAAM,EAAE,CAACC,QAAQ,EAAE,CAACC,QAAQ,CAAC,+CAA+C,CAAC;EAC1FC,EAAAA,OAAO,EAAEJ,KAAC,CAACC,MAAM,EAAE,CAACI,GAAG,EAAE,CAACF,QAAQ,CAAC,0CAA0C,CAAC;IAC9EG,SAAS,EAAEN,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,oDAAoD,CAAC;IACpFI,OAAO,EAAEP,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,sDAAsD,CAAA;GACpF,CAAA;EAED,MAAMK,cAAc,GAAG;EACrBC,EAAAA,WAAW,EAAET,KAAC,CAACU,MAAM,EAAE,CAACC,GAAG,EAAE,CAACR,QAAQ,CAAC,+CAA+C,CAAC;IACvFS,aAAa,EAAEZ,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,iDAAiD,CAAA;GACrF,CAAA;AAEM,QAAMU,eAAe,GAAG;EAC7BC,EAAAA,WAAW,EAAE;EACXC,IAAAA,WAAW,EAAE,qBAAqB;EAClCC,IAAAA,WAAW,EAAE,+CAA+C;EAC5DC,IAAAA,MAAM,EAAEjB,KAAC,CAACkB,MAAM,CAAC;EACf,MAAA,GAAGpB,SAAS;QACZqB,MAAM,EAAEnB,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,+BAA+B,CAAC;QAC5DiB,QAAQ,EAAEpB,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,0BAA0B,CAAA;OACzD,CAAA;KACF;EAEDkB,EAAAA,YAAY,EAAE;EACZN,IAAAA,WAAW,EAAE,sBAAsB;EACnCC,IAAAA,WAAW,EAAE,oEAAoE;EACjFC,IAAAA,MAAM,EAAEjB,KAAC,CAACkB,MAAM,CAAC;EACf,MAAA,GAAGpB,SAAS;QACZqB,MAAM,EAAEnB,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,+BAA+B,CAAC;QAC5DiB,QAAQ,EAAEpB,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,0BAA0B,CAAA;OACzD,CAAA;KACF;EAEDmB,EAAAA,cAAc,EAAE;EACdP,IAAAA,WAAW,EAAE,wBAAwB;EACrCC,IAAAA,WAAW,EAAE,6CAA6C;EAC1DC,IAAAA,MAAM,EAAEjB,KAAC,CAACkB,MAAM,CAAC;EACf,MAAA,GAAGpB,SAAS;EACZ,MAAA,GAAGU,cAAc;QACjBW,MAAM,EAAEnB,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,+BAA+B,CAAC;QAC5DiB,QAAQ,EAAEpB,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,0BAA0B,CAAC;EACzDoB,MAAAA,UAAU,EAAEvB,KAAC,CAACU,MAAM,EAAE,CAACC,GAAG,EAAE,CAACR,QAAQ,CAAC,4BAA4B,CAAA;OACnE,CAAA;KACF;EAEDqB,EAAAA,YAAY,EAAE;EACZT,IAAAA,WAAW,EAAE,sBAAsB;EACnCC,IAAAA,WAAW,EAAE,mDAAmD;EAChEC,IAAAA,MAAM,EAAEjB,KAAC,CAACkB,MAAM,CAAC;EACf,MAAA,GAAGpB,SAAS;EACZ,MAAA,GAAGU,cAAc;EACjBiB,MAAAA,MAAM,EAAEzB,KAAC,CAACU,MAAM,EAAE,CAACC,GAAG,EAAE,CAACR,QAAQ,CAAC,sCAAsC,CAAC;QACzEuB,aAAa,EAAE1B,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,mHAAmH,CAAC;EACvJgB,MAAAA,MAAM,EAAEnB,KAAC,CAACC,MAAM,EAAE,CAAC0B,QAAQ,EAAE,CAACxB,QAAQ,CAAC,uCAAuC,CAAC;EAC/EiB,MAAAA,QAAQ,EAAEpB,KAAC,CAACC,MAAM,EAAE,CAAC0B,QAAQ,EAAE,CAACxB,QAAQ,CAAC,yCAAyC,CAAC;EACnFyB,MAAAA,MAAM,EAAE5B,KAAC,CAACU,MAAM,EAAE,CAACC,GAAG,EAAE,CAACgB,QAAQ,EAAE,CAACxB,QAAQ,CAAC,kDAAkD,CAAC;EAChG0B,MAAAA,QAAQ,EAAE7B,KAAC,CAACC,MAAM,EAAE,CAAC0B,QAAQ,EAAE,CAACxB,QAAQ,CAAC,oDAAoD,CAAA;OAC9F,CAAA;KACF;EACD2B,EAAAA,cAAc,EAAE;EACdf,IAAAA,WAAW,EAAE,wBAAwB;EACrCC,IAAAA,WAAW,EAAE,gDAAgD;EAC7DC,IAAAA,MAAM,EAAEjB,KAAC,CAACkB,MAAM,CAAC;EACf,MAAA,GAAGpB,SAAS;EACZ,MAAA,GAAGU,cAAc;EACjBiB,MAAAA,MAAM,EAAEzB,KAAC,CAACU,MAAM,EAAE,CAACC,GAAG,EAAE,CAACR,QAAQ,CAAC,sCAAsC,CAAC;EACzE4B,MAAAA,QAAQ,EAAE/B,KAAC,CAACC,MAAM,EAAE,CAAC0B,QAAQ,EAAE,CAACxB,QAAQ,CAAC,4GAA4G,CAAC;QACtJuB,aAAa,EAAE1B,KAAC,CAACC,MAAM,EAAE,CAACE,QAAQ,CAAC,mHAAmH,CAAC;EACvJgB,MAAAA,MAAM,EAAEnB,KAAC,CAACC,MAAM,EAAE,CAAC0B,QAAQ,EAAE,CAACxB,QAAQ,CAAC,gDAAgD,CAAC;EACxFiB,MAAAA,QAAQ,EAAEpB,KAAC,CAACC,MAAM,EAAE,CAAC0B,QAAQ,EAAE,CAACxB,QAAQ,CAAC,kDAAkD,CAAC;EAC5FyB,MAAAA,MAAM,EAAE5B,KAAC,CAACU,MAAM,EAAE,CAACC,GAAG,EAAE,CAACgB,QAAQ,EAAE,CAACxB,QAAQ,CAAC,2DAA2D,CAAC;EACzG0B,MAAAA,QAAQ,EAAE7B,KAAC,CAACC,MAAM,EAAE,CAAC0B,QAAQ,EAAE,CAACxB,QAAQ,CAAC,6DAA6D,CAAA;OACvG,CAAA;EACF,GAAA;;;EClEG,SAAU6B,cAAcA,CAACC,QAA4B,EAAA;IACzD,MAAMC,KAAK,GAAGrB,eAAe,CAACoB,QAAQ,CAAC,CAAChB,MAAM,CAACiB,KAAK,CAAA;IACpD,OAAOC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACG,GAAG,CAACC,IAAA,IAAA;EAAA,IAAA,IAAC,CAACC,IAAI,EAAEC,KAAK,CAAC,GAAAF,IAAA,CAAA;MAAA,OAAM;QACnDC,IAAI;EACJvB,MAAAA,WAAW,EAAGwB,KAAsB,CAACxB,WAAW,IAAI,EAAE;EACtDyB,MAAAA,QAAQ,EAAE,CAAED,KAAsB,CAACE,UAAU,EAAE;OAChD,CAAA;EAAA,GAAC,CAAC,CAAA;EACL;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../events.ts","../index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst baseEvent = {\n timestamp: z.string().datetime().describe(\"ISO 8601 timestamp of when the event occurred\"),\n pageUrl: z.string().url().describe(\"URL of the page where the event occurred\"),\n visitorId: z.string().describe(\"Anonymous visitor UUID for cross-event correlation\"),\n visitId: z.string().describe(\"Visit/session UUID for session-level funnel analysis\"),\n};\n\nconst communityEvent = {\n communityId: z.number().int().describe(\"ID of the community associated with the event\"),\n communityName: z.string().describe(\"Name of the community associated with the event\"),\n};\n\nexport const analyticsEvents = {\n form_viewed: {\n defaultName: \"further.form_viewed\",\n description: \"Fired when a form becomes visible to the user\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_started: {\n defaultName: \"further.form_started\",\n description: \"Fired when the user interacts with a form field for the first time\",\n schema: z.object({\n ...baseEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n }),\n },\n\n form_submitted: {\n defaultName: \"further.form_submitted\",\n description: \"Fired when a form is successfully submitted\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n formId: z.string().describe(\"Unique identifier of the form\"),\n formName: z.string().describe(\"Human-readable form name\"),\n fieldCount: z.number().int().describe(\"Number of fields submitted\"),\n }),\n },\n\n lead_created: {\n defaultName: \"further.lead_created\",\n description: \"Fired when a new lead is captured via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the lead came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the lead came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the lead came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the lead came from a chat widget\"),\n }),\n },\n tour_scheduled: {\n defaultName: \"further.tour_scheduled\",\n description: \"Fired when a tour is scheduled via any channel\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n tourDate: z.string().optional().describe(\"ISO 8601 tour start date/time. Optional because the tour date may not always be parseable from user input.\"),\n channelSource: z.string().describe(\"Channel source that captured the lead (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the tour was scheduled from a form\"),\n formName: z.string().optional().describe(\"Form name, if the tour was scheduled from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the tour was scheduled from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the tour was scheduled from a chat widget\"),\n }),\n },\n event_rsvp: {\n defaultName: \"further.event_rsvp\",\n description: \"Fired when a user RSVPs to a community event\",\n schema: z.object({\n ...baseEvent,\n ...communityEvent,\n leadId: z.number().int().describe(\"Internal lead ID for CRM correlation\"),\n eventId: z.number().int().describe(\"Community event ID\"),\n eventName: z.string().describe(\"Community event name\"),\n channelSource: z.string().describe(\"Channel source (e.g. conversational_webform, static_webform, chat_api, conversational_ivr)\"),\n formId: z.string().optional().describe(\"Form ID, if the RSVP came from a form\"),\n formName: z.string().optional().describe(\"Form name, if the RSVP came from a form\"),\n chatId: z.number().int().optional().describe(\"Chat/VSA ID, if the RSVP came from a chat widget\"),\n chatName: z.string().optional().describe(\"Chat/VSA name, if the RSVP came from a chat widget\"),\n }),\n },\n} as const;\n","import { z } from \"zod\";\nimport { analyticsEvents } from \"./events\";\n\nexport { analyticsEvents } from \"./events\";\n\nexport type AnalyticsEventName = keyof typeof analyticsEvents;\n\nexport type AnalyticsEventData<T extends AnalyticsEventName> = z.infer<(typeof analyticsEvents)[T][\"schema\"]>;\n\nexport function getEventFields(eventKey: AnalyticsEventName) {\n const shape = analyticsEvents[eventKey].schema.shape;\n return Object.entries(shape).map(([name, field]) => ({\n name,\n description: (field as z.ZodTypeAny).description || \"\",\n required: !(field as z.ZodTypeAny).isOptional(),\n }));\n}\n"],"names":["baseEvent","timestamp","z","string","datetime","describe","pageUrl","url","visitorId","visitId","communityEvent","communityId","number","int","communityName","analyticsEvents","form_viewed","defaultName","description","schema","object","formId","formName","form_started","form_submitted","fieldCount","lead_created","leadId","channelSource","optional","chatId","chatName","tour_scheduled","tourDate","event_rsvp","eventId","eventName","getEventFields","eventKey","shape","Object","entries","map","_ref","name","field","required","isOptional"],"mappings":"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"}
|