@sitecore-cloudsdk/events
Advanced tools
Comparing version 0.2.4 to 0.3.0
{ | ||
"name": "@sitecore-cloudsdk/events", | ||
"version": "0.2.4", | ||
"version": "0.3.0", | ||
"license": "Apache-2.0", | ||
"homepage": "https://doc.sitecore.com/xmc/en/developers/xm-cloud/sitecore-cloud-sdk.html", | ||
"homepage": "https://doc.sitecore.com/xmc/en/developers/sdk/latest/cloud-sdk/index.html", | ||
"exports": { | ||
@@ -19,4 +19,4 @@ "./server": { | ||
"dependencies": { | ||
"@sitecore-cloudsdk/core": "^0.2.4", | ||
"@sitecore-cloudsdk/utils": "^0.2.4" | ||
"@sitecore-cloudsdk/core": "^0.3.0", | ||
"@sitecore-cloudsdk/utils": "^0.3.0" | ||
}, | ||
@@ -39,5 +39,4 @@ "scripts": { | ||
"engines": { | ||
"node": ">=18", | ||
"npm": ">=9" | ||
"node": ">=18" | ||
} | ||
} |
export { getBrowserId } from '@sitecore-cloudsdk/core'; | ||
export { init } from './lib/initializer/browser/initializer'; | ||
export type { PageViewEventInput, CustomEventInput, IdentityEventAttributesInput } from './lib/events'; | ||
export type { PageViewData, EventData, IdentityData } from './lib/events'; | ||
export { addToEventQueue } from './lib/eventStorage/addToEventQueue'; | ||
@@ -5,0 +5,0 @@ export { processEventQueue } from './lib/eventStorage/processEventQueue'; |
@@ -12,5 +12,5 @@ /** | ||
IV_0004 = "[IV-0004] Incorrect value for \"expiryDate\". Format the value according to ISO 8601.", | ||
IV_0005 = "[IV-0005] This event supports maximum 50 attributes. Reduce the number of attributes.", | ||
IV_0005 = "[IV-0005] \"extensionData\" supports maximum 50 attributes. Reduce the number of attributes.", | ||
MV_0003 = "[MV-0003] \"identifiers\" is required." | ||
} | ||
export declare const EVENTS_NAMESPACE = "sitecore-cloudsdk:events"; |
@@ -23,5 +23,5 @@ "use strict"; | ||
ErrorMessages["IV_0004"] = "[IV-0004] Incorrect value for \"expiryDate\". Format the value according to ISO 8601."; | ||
ErrorMessages["IV_0005"] = "[IV-0005] This event supports maximum 50 attributes. Reduce the number of attributes."; | ||
ErrorMessages["IV_0005"] = "[IV-0005] \"extensionData\" supports maximum 50 attributes. Reduce the number of attributes."; | ||
ErrorMessages["MV_0003"] = "[MV-0003] \"identifiers\" is required."; | ||
})(ErrorMessages || (exports.ErrorMessages = ErrorMessages = {})); | ||
exports.EVENTS_NAMESPACE = 'sitecore-cloudsdk:events'; |
@@ -33,3 +33,3 @@ import { EventAttributesInput } from './common-interfaces'; | ||
} | ||
type BaseEventData = Partial<EventAttributesInput>; | ||
type BaseEventData = EventAttributesInput; | ||
export {}; |
import { NestedObject } from '@sitecore-cloudsdk/utils'; | ||
/** | ||
* Event data received as input to be sent to Sitecore EP | ||
*/ | ||
interface MandatoryInput { | ||
channel: string; | ||
currency: string; | ||
} | ||
type MandatoryEventInput = MandatoryInput; | ||
/** | ||
* Event data that is sent to Sitecore EP | ||
*/ | ||
interface InferrableInput { | ||
/** | ||
* To be restored back to MandatoryEventInput Interface | ||
* as mandatory input parameter in version 1.0.0 | ||
*/ | ||
export interface EventAttributesInput { | ||
language?: string; | ||
page?: string; | ||
channel?: string; | ||
currency?: string; | ||
} | ||
type InferrableEventInput = InferrableInput; | ||
/** | ||
* Interface to hold the base event attributes | ||
*/ | ||
export interface EventAttributesInput extends MandatoryEventInput, InferrableEventInput { | ||
} | ||
/** | ||
* Type of the extension data that the developer can pass to events | ||
*/ | ||
export type ExtensionData = NestedObject; | ||
export {}; |
import { BaseEvent } from '../base-event'; | ||
import { EventAttributesInput } from '../common-interfaces'; | ||
import { EventAttributesInput, ExtensionData } from '../common-interfaces'; | ||
import { SendEvent } from '../send-event/sendEvent'; | ||
@@ -27,7 +27,5 @@ import { EPResponse, Settings } from '@sitecore-cloudsdk/core'; | ||
sendEvent: SendEvent; | ||
eventData: CustomEventData; | ||
eventData: EventData; | ||
id: string; | ||
extensionData?: NestedObject; | ||
settings: Settings; | ||
type: string; | ||
} | ||
@@ -45,9 +43,5 @@ /** | ||
*/ | ||
export interface CustomEventInput extends EventAttributesInput, NestedObject { | ||
export interface EventData extends EventAttributesInput, NestedObject { | ||
type: string; | ||
extensionData?: ExtensionData; | ||
} | ||
/** | ||
* Internal interface with the required/optional attributes in order to send a custom event to SitecoreCloud API | ||
*/ | ||
interface CustomEventData extends Partial<EventAttributesInput>, NestedObject { | ||
} | ||
export {}; |
@@ -15,3 +15,3 @@ "use strict"; | ||
constructor(args) { | ||
const { channel, currency, language, page, ...rest } = args.eventData; | ||
const { channel, currency, language, page, type, extensionData, ...rest } = args.eventData; | ||
super({ channel, currency, language, page }, args.id); | ||
@@ -22,7 +22,7 @@ this.extensionData = {}; | ||
this.customEventPayload = { | ||
type: args.type, | ||
type, | ||
...rest, | ||
}; | ||
if (args.extensionData) | ||
this.extensionData = (0, utils_1.flattenObject)({ object: args.extensionData }); | ||
if (extensionData) | ||
this.extensionData = (0, utils_1.flattenObject)({ object: extensionData }); | ||
const numberOfExtensionDataProperties = Object.entries(this.extensionData).length; | ||
@@ -29,0 +29,0 @@ if (numberOfExtensionDataProperties > consts_1.MAX_EXT_ATTRIBUTES) |
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { ExtensionData } from '../common-interfaces'; | ||
import { CustomEventInput } from './custom-event'; | ||
import { EventData } from './custom-event'; | ||
/** | ||
* A function that sends an event to SitecoreCloud API with the specified type | ||
* @param type - The required type of the event | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function event(type: string, eventData: CustomEventInput, extensionData?: ExtensionData): Promise<EPResponse | null>; | ||
export declare function event(eventData: EventData): Promise<EPResponse | null>; |
@@ -12,9 +12,7 @@ "use strict"; | ||
* A function that sends an event to SitecoreCloud API with the specified type | ||
* @param type - The required type of the event | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
async function event(type, eventData, extensionData) { | ||
async function event(eventData) { | ||
await (0, initializer_1.awaitInit)(); | ||
@@ -25,9 +23,7 @@ const settings = (0, core_1.handleGetSettingsError)(core_1.getSettings, consts_1.ErrorMessages.IE_0004); | ||
eventData, | ||
extensionData, | ||
id, | ||
sendEvent: sendEvent_1.sendEvent, | ||
settings, | ||
type, | ||
}).send(); | ||
} | ||
exports.event = event; |
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { ExtensionData } from '../common-interfaces'; | ||
import { CustomEventInput } from './custom-event'; | ||
import { EventData } from './custom-event'; | ||
import { Request } from '@sitecore-cloudsdk/utils'; | ||
/** | ||
* A function that sends an event to SitecoreCloud API with the specified type | ||
* @param type - The required type of the event | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function eventServer<T extends Request>(type: string, eventData: CustomEventInput, request: T, extensionData?: ExtensionData): Promise<EPResponse | null>; | ||
export declare function eventServer<T extends Request>(request: T, eventData: EventData): Promise<EPResponse | null>; |
@@ -11,9 +11,8 @@ "use strict"; | ||
* A function that sends an event to SitecoreCloud API with the specified type | ||
* @param type - The required type of the event | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
function eventServer(type, eventData, request, extensionData) { | ||
function eventServer(request, eventData) { | ||
const settings = (0, core_1.handleGetSettingsError)(core_1.getSettingsServer, consts_1.ErrorMessages.IE_0005); | ||
@@ -23,9 +22,7 @@ const id = (0, core_1.getBrowserIdFromRequest)(request, settings.cookieSettings.cookieName); | ||
eventData, | ||
extensionData, | ||
id, | ||
sendEvent: sendEvent_1.sendEvent, | ||
settings, | ||
type, | ||
}).send(); | ||
} | ||
exports.eventServer = eventServer; |
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
/** | ||
* A function that sends a form event to SitecoreCloud API | ||
* | ||
* @param formId - The required form ID string | ||
@@ -5,0 +6,0 @@ * @param interactionType - The required interaction type string. Possible values: "VIEWED", "SUBMITTED" |
@@ -12,2 +12,3 @@ "use strict"; | ||
* A function that sends a form event to SitecoreCloud API | ||
* | ||
* @param formId - The required form ID string | ||
@@ -23,6 +24,8 @@ * @param interactionType - The required interaction type string. Possible values: "VIEWED", "SUBMITTED" | ||
const formEvent = new custom_event_1.CustomEvent({ | ||
eventData: {}, | ||
extensionData: { | ||
formId, | ||
interactionType: interactionType.toUpperCase(), | ||
eventData: { | ||
extensionData: { | ||
formId, | ||
interactionType: interactionType.toUpperCase(), | ||
}, | ||
type: 'FORM', | ||
}, | ||
@@ -32,3 +35,2 @@ id, | ||
settings, | ||
type: 'FORM', | ||
}); | ||
@@ -35,0 +37,0 @@ formEvent.page = undefined; |
@@ -7,3 +7,3 @@ import { BaseEvent } from '../base-event'; | ||
export declare class IdentityEvent extends BaseEvent { | ||
private eventData; | ||
private identityData; | ||
private sendEvent; | ||
@@ -15,2 +15,3 @@ private extensionData; | ||
* A class that extends from {@link BaseEvent} and has all the required functionality to send a VIEW event | ||
* | ||
* @param args - Unified object containing the required properties | ||
@@ -21,3 +22,3 @@ */ | ||
* Function that validates the identifiers object, email and date attributes for CDN users | ||
* * @param eventData - The data to be validated | ||
* * @param identityData - The data to be validated | ||
*/ | ||
@@ -47,3 +48,3 @@ private validateAttributes; | ||
*/ | ||
export interface IdentityEventAttributesInput extends EventAttributesInput { | ||
export interface IdentityData extends EventAttributesInput { | ||
city?: string; | ||
@@ -63,2 +64,3 @@ country?: string; | ||
title?: string; | ||
extensionData?: ExtensionData; | ||
} | ||
@@ -99,4 +101,3 @@ /** | ||
sendEvent: SendEvent; | ||
eventData: IdentityEventAttributesInput; | ||
extensionData?: ExtensionData; | ||
identityData: IdentityData; | ||
id: string; | ||
@@ -103,0 +104,0 @@ settings: Settings; |
@@ -12,15 +12,16 @@ "use strict"; | ||
* A class that extends from {@link BaseEvent} and has all the required functionality to send a VIEW event | ||
* | ||
* @param args - Unified object containing the required properties | ||
*/ | ||
constructor(args) { | ||
const { channel, currency, language, page } = args.eventData; | ||
const { channel, currency, language, page, extensionData } = args.identityData; | ||
super({ channel, currency, language, page }, args.id); | ||
this.extensionData = {}; | ||
this.numberOfExtensionDataProperties = 0; | ||
this.validateAttributes(args.eventData); | ||
this.eventData = args.eventData; | ||
this.validateAttributes(args.identityData); | ||
this.identityData = args.identityData; | ||
this.sendEvent = args.sendEvent; | ||
this.settings = args.settings; | ||
if (args.extensionData) | ||
this.extensionData = (0, utils_1.flattenObject)({ object: args.extensionData }); | ||
if (extensionData) | ||
this.extensionData = (0, utils_1.flattenObject)({ object: extensionData }); | ||
this.numberOfExtensionDataProperties = Object.entries(this.extensionData).length; | ||
@@ -32,14 +33,14 @@ if (this.numberOfExtensionDataProperties > consts_1.MAX_EXT_ATTRIBUTES) | ||
* Function that validates the identifiers object, email and date attributes for CDN users | ||
* * @param eventData - The data to be validated | ||
* * @param identityData - The data to be validated | ||
*/ | ||
validateAttributes(eventData) { | ||
if (eventData.identifiers.length === 0) | ||
validateAttributes(identityData) { | ||
if (identityData.identifiers.length === 0) | ||
throw new Error(consts_2.ErrorMessages.MV_0003); | ||
if (eventData.dob !== undefined && !(0, utils_1.isShortISODateString)(eventData.dob)) | ||
if (identityData.dob !== undefined && !(0, utils_1.isShortISODateString)(identityData.dob)) | ||
throw new Error(consts_2.ErrorMessages.IV_0002); | ||
eventData.identifiers.forEach((identifier) => { | ||
identityData.identifiers.forEach((identifier) => { | ||
if (identifier.expiryDate && !(0, utils_1.isShortISODateString)(identifier.expiryDate)) | ||
throw new Error(consts_2.ErrorMessages.IV_0004); | ||
}); | ||
if (eventData.email && !(0, utils_1.isValidEmail)(eventData.email)) | ||
if (identityData.email && !(0, utils_1.isValidEmail)(identityData.email)) | ||
throw new Error(consts_2.ErrorMessages.IV_0003); | ||
@@ -53,9 +54,9 @@ } | ||
const identityPayload = { | ||
city: this.eventData.city, | ||
country: this.eventData.country, | ||
dob: this.eventData.dob, | ||
email: this.eventData.email, | ||
firstname: this.eventData.firstName, | ||
gender: this.eventData.gender, | ||
identifiers: this.eventData.identifiers.map((value) => { | ||
city: this.identityData.city, | ||
country: this.identityData.country, | ||
dob: this.identityData.dob, | ||
email: this.identityData.email, | ||
firstname: this.identityData.firstName, | ||
gender: this.identityData.gender, | ||
identifiers: this.identityData.identifiers.map((value) => { | ||
return { | ||
@@ -68,10 +69,10 @@ // eslint-disable-next-line @typescript-eslint/naming-convention | ||
}), | ||
lastname: this.eventData.lastName, | ||
mobile: this.eventData.mobile, | ||
phone: this.eventData.phone, | ||
lastname: this.identityData.lastName, | ||
mobile: this.identityData.mobile, | ||
phone: this.identityData.phone, | ||
// eslint-disable-next-line @typescript-eslint/naming-convention | ||
postal_code: this.eventData.postalCode, | ||
state: this.eventData.state, | ||
street: this.eventData.street, | ||
title: this.eventData.title, | ||
postal_code: this.identityData.postalCode, | ||
state: this.identityData.state, | ||
street: this.identityData.street, | ||
title: this.identityData.title, | ||
type: 'IDENTITY', | ||
@@ -78,0 +79,0 @@ }; |
@@ -1,11 +0,9 @@ | ||
import { ExtensionData } from '../common-interfaces'; | ||
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { IdentityEventAttributesInput } from './identity-event'; | ||
import { IdentityData } from './identity-event'; | ||
/** | ||
* A function that sends an IDENTITY event to SitecoreCloud API | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function identity(eventData: IdentityEventAttributesInput, extensionData?: ExtensionData): Promise<EPResponse | null>; | ||
export declare function identity(identityData: IdentityData): Promise<EPResponse | null>; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.identity = void 0; | ||
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
const core_1 = require("@sitecore-cloudsdk/core"); | ||
@@ -11,8 +12,7 @@ const identity_event_1 = require("./identity-event"); | ||
* A function that sends an IDENTITY event to SitecoreCloud API | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
async function identity(eventData, extensionData) { | ||
async function identity(identityData) { | ||
await (0, initializer_1.awaitInit)(); | ||
@@ -22,5 +22,4 @@ const settings = (0, core_1.handleGetSettingsError)(core_1.getSettings, consts_1.ErrorMessages.IE_0004); | ||
return new identity_event_1.IdentityEvent({ | ||
eventData, | ||
extensionData, | ||
id, | ||
identityData, | ||
sendEvent: sendEvent_1.sendEvent, | ||
@@ -27,0 +26,0 @@ settings, |
@@ -1,13 +0,11 @@ | ||
import { ExtensionData } from '../common-interfaces'; | ||
import { Request } from '@sitecore-cloudsdk/utils'; | ||
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { IdentityEventAttributesInput } from './identity-event'; | ||
import { IdentityData } from './identity-event'; | ||
/** | ||
* A function that sends an IDENTITY event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @param identityData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function identityServer(eventData: IdentityEventAttributesInput, request: Request, extensionData?: ExtensionData): Promise<EPResponse | null>; | ||
export declare function identityServer(request: Request, identityData: IdentityData): Promise<EPResponse | null>; |
@@ -11,15 +11,13 @@ "use strict"; | ||
* A function that sends an IDENTITY event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @param identityData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
function identityServer(eventData, request, extensionData) { | ||
function identityServer(request, identityData) { | ||
const settings = (0, core_1.handleGetSettingsError)(core_1.getSettingsServer, consts_1.ErrorMessages.IE_0005); | ||
const id = (0, core_1.getBrowserIdFromRequest)(request, settings.cookieSettings.cookieName); | ||
return new identity_event_1.IdentityEvent({ | ||
eventData, | ||
extensionData, | ||
id, | ||
identityData, | ||
sendEvent: sendEvent_1.sendEvent, | ||
@@ -26,0 +24,0 @@ settings: settings, |
export { BaseEvent } from './base-event'; | ||
export type { BasePayload } from './base-event'; | ||
export { PageViewEvent } from './page-view/page-view-event'; | ||
export type { PageViewEventInput, PageViewEventPayload } from './page-view/page-view-event'; | ||
export type { PageViewData, PageViewEventPayload } from './page-view/page-view-event'; | ||
export { CustomEvent } from './custom-event/custom-event'; | ||
export type { CustomEventInput, CustomEventPayload, CustomEventArguments } from './custom-event/custom-event'; | ||
export type { EventData, CustomEventPayload, CustomEventArguments } from './custom-event/custom-event'; | ||
export { IdentityEvent } from './identity/identity-event'; | ||
export type { IdentityEventAttributesInput, IdentityEventPayload } from './identity/identity-event'; | ||
export type { IdentityData, IdentityEventPayload } from './identity/identity-event'; | ||
export type { ExtensionData } from './common-interfaces'; |
import { EPResponse, Infer, Settings } from '@sitecore-cloudsdk/core'; | ||
import { FlattenedObject, NestedObject } from '@sitecore-cloudsdk/utils'; | ||
import { BaseEvent } from '../base-event'; | ||
import { EventAttributesInput } from '../common-interfaces'; | ||
import { EventAttributesInput, ExtensionData } from '../common-interfaces'; | ||
import { SendEvent } from '../send-event/sendEvent'; | ||
@@ -9,3 +9,3 @@ export declare class PageViewEvent extends BaseEvent { | ||
private sendEvent; | ||
private eventData; | ||
private pageViewData; | ||
private extensionData; | ||
@@ -53,3 +53,3 @@ private urlSearchParams; | ||
sendEvent: SendEvent; | ||
eventData: PageViewEventInput; | ||
pageViewData: PageViewData; | ||
id: string; | ||
@@ -64,6 +64,7 @@ settings: Settings; | ||
*/ | ||
export interface PageViewEventInput extends EventAttributesInput { | ||
export interface PageViewData extends EventAttributesInput { | ||
pageVariantId?: string; | ||
referrer?: string; | ||
includeUTMParameters?: boolean; | ||
extensionData?: ExtensionData; | ||
} | ||
@@ -70,0 +71,0 @@ /** |
@@ -14,3 +14,3 @@ "use strict"; | ||
constructor(args) { | ||
const { channel, currency, language, page } = args.eventData; | ||
const { channel, currency, language, page, extensionData } = args.pageViewData; | ||
super({ | ||
@@ -23,8 +23,8 @@ channel, | ||
this.extensionData = {}; | ||
this.eventData = args.eventData; | ||
this.pageViewData = args.pageViewData; | ||
this.sendEvent = args.sendEvent; | ||
this.settings = args.settings; | ||
this.urlSearchParams = new URLSearchParams(decodeURI(args.searchParams)); | ||
if (args.extensionData) | ||
this.extensionData = (0, utils_1.flattenObject)({ object: args.extensionData }); | ||
if (extensionData) | ||
this.extensionData = (0, utils_1.flattenObject)({ object: extensionData }); | ||
const numberOfExtensionDataProperties = Object.entries(this.extensionData).length; | ||
@@ -34,3 +34,3 @@ if (numberOfExtensionDataProperties > consts_1.MAX_EXT_ATTRIBUTES) | ||
this.includeUTMParameters = | ||
args.eventData.includeUTMParameters === undefined ? true : args.eventData.includeUTMParameters; | ||
args.pageViewData.includeUTMParameters === undefined ? true : args.pageViewData.includeUTMParameters; | ||
} | ||
@@ -42,5 +42,5 @@ /** | ||
*/ | ||
getPageVariantId(pageVariantIdFromEventData, pageVariantIdFromExt) { | ||
if (pageVariantIdFromEventData) | ||
return pageVariantIdFromEventData; | ||
getPageVariantId(pageVariantIdFromPageViewData, pageVariantIdFromExt) { | ||
if (pageVariantIdFromPageViewData) | ||
return pageVariantIdFromPageViewData; | ||
const pageVariantIdFromURL = this.urlSearchParams.get('variantid'); | ||
@@ -59,4 +59,4 @@ if (pageVariantIdFromURL) | ||
getReferrer() { | ||
if (this.eventData.referrer) | ||
return this.eventData.referrer; | ||
if (this.pageViewData.referrer) | ||
return this.pageViewData.referrer; | ||
if (typeof window === 'undefined') | ||
@@ -77,3 +77,3 @@ return null; | ||
}; | ||
const pageVariantId = this.getPageVariantId(this.eventData.pageVariantId, this.extensionData['pageVariantId']); | ||
const pageVariantId = this.getPageVariantId(this.pageViewData.pageVariantId, this.extensionData['pageVariantId']); | ||
if (pageVariantId !== null) | ||
@@ -80,0 +80,0 @@ viewPayload.ext = { ...viewPayload.ext, pageVariantId }; |
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { NestedObject, Request } from '@sitecore-cloudsdk/utils'; | ||
import { PageViewEventInput } from './page-view-event'; | ||
import { Request } from '@sitecore-cloudsdk/utils'; | ||
import { PageViewData } from './page-view-event'; | ||
/** | ||
* A function that sends a VIEW event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @param pageViewData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function pageViewServer<T extends Request>(eventData: PageViewEventInput, request: T, extensionData?: NestedObject): Promise<EPResponse | null>; | ||
export declare function pageViewServer<T extends Request>(request: T, pageViewData: PageViewData): Promise<EPResponse | null>; |
@@ -11,9 +11,8 @@ "use strict"; | ||
* A function that sends a VIEW event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @param pageViewData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
function pageViewServer(eventData, request, extensionData) { | ||
function pageViewServer(request, pageViewData) { | ||
const settings = (0, core_1.handleGetSettingsError)(core_1.getSettingsServer, consts_1.ErrorMessages.IE_0005); | ||
@@ -24,5 +23,4 @@ const id = (0, core_1.getBrowserIdFromRequest)(request, settings.cookieSettings.cookieName); | ||
return new page_view_event_1.PageViewEvent({ | ||
eventData, | ||
extensionData, | ||
id, | ||
pageViewData, | ||
searchParams: requestUrl.search, | ||
@@ -29,0 +27,0 @@ sendEvent: sendEvent_1.sendEvent, |
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { NestedObject } from '@sitecore-cloudsdk/utils'; | ||
import { PageViewEventInput } from './page-view-event'; | ||
import { PageViewData } from './page-view-event'; | ||
/** | ||
* A function that sends a VIEW event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* | ||
* @param pageViewData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function pageView(eventData: PageViewEventInput, extensionData?: NestedObject): Promise<EPResponse | null>; | ||
export declare function pageView(pageViewData: PageViewData): Promise<EPResponse | null>; |
@@ -12,8 +12,8 @@ "use strict"; | ||
* A function that sends a VIEW event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* | ||
* @param pageViewData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
async function pageView(eventData, extensionData) { | ||
async function pageView(pageViewData) { | ||
await (0, initializer_1.awaitInit)(); | ||
@@ -23,5 +23,4 @@ const settings = (0, core_1.handleGetSettingsError)(core_1.getSettings, consts_1.ErrorMessages.IE_0004); | ||
return new page_view_event_1.PageViewEvent({ | ||
eventData, | ||
extensionData, | ||
id, | ||
pageViewData, | ||
searchParams: window.location.search, | ||
@@ -28,0 +27,0 @@ sendEvent: sendEvent_1.sendEvent, |
@@ -1,9 +0,7 @@ | ||
import { CustomEventInput, ExtensionData } from '../events'; | ||
import { EventData } from '../events'; | ||
/** | ||
* A function that adds event to the queue | ||
* @param type - The required type of the event | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
*/ | ||
export declare function addToEventQueue(type: string, eventData: CustomEventInput, extensionData?: ExtensionData): Promise<void>; | ||
export declare function addToEventQueue(eventData: EventData): Promise<void>; |
@@ -11,8 +11,6 @@ "use strict"; | ||
* A function that adds event to the queue | ||
* @param type - The required type of the event | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
*/ | ||
async function addToEventQueue(type, eventData, extensionData) { | ||
async function addToEventQueue(eventData) { | ||
await (0, initializer_1.awaitInit)(); | ||
@@ -23,6 +21,4 @@ const settings = (0, core_1.handleGetSettingsError)(core_1.getSettings, consts_1.ErrorMessages.IE_0004); | ||
eventData, | ||
extensionData, | ||
id, | ||
settings, | ||
type, | ||
}; | ||
@@ -29,0 +25,0 @@ eventStorage_1.eventQueue.enqueueEvent(queueEventPayload); |
@@ -33,4 +33,4 @@ import { CustomEventArguments } from '../events'; | ||
} | ||
export type QueueEventPayload = Pick<CustomEventArguments, 'eventData' | 'extensionData' | 'type' | 'settings' | 'id'>; | ||
export type QueueEventPayload = Pick<CustomEventArguments, 'eventData' | 'settings' | 'id'>; | ||
export declare const eventQueue: EventQueue; | ||
export {}; |
@@ -52,7 +52,5 @@ "use strict"; | ||
eventData: queueEventPayload.eventData, | ||
extensionData: queueEventPayload.extensionData, | ||
id: queueEventPayload.id, | ||
sendEvent: sendEvent_1.sendEvent, | ||
settings: queueEventPayload.settings, | ||
type: queueEventPayload.type, | ||
}).send(); | ||
@@ -59,0 +57,0 @@ } |
@@ -1,9 +0,9 @@ | ||
import { SettingsParamsBrowser } from '@sitecore-cloudsdk/core'; | ||
import { BrowserSettings } from '@sitecore-cloudsdk/core'; | ||
export declare let initPromise: Promise<void> | null; | ||
/** | ||
* Initiates the Events library using the global settings added by the developer | ||
* @param settingsInput - Global settings added by the developer | ||
* @param settings - Global settings added by the developer | ||
* @returns A promise that resolves with an object that handles the library functionality | ||
*/ | ||
export declare function init(settingsInput: SettingsParamsBrowser): Promise<void>; | ||
export declare function init(settings: BrowserSettings): Promise<void>; | ||
/** | ||
@@ -10,0 +10,0 @@ * A function that handles the async browser init logic. Throws an error or awaits the promise. |
@@ -10,10 +10,10 @@ "use strict"; | ||
* Initiates the Events library using the global settings added by the developer | ||
* @param settingsInput - Global settings added by the developer | ||
* @param settings - Global settings added by the developer | ||
* @returns A promise that resolves with an object that handles the library functionality | ||
*/ | ||
async function init(settingsInput) { | ||
async function init(settings) { | ||
if (typeof window === 'undefined') | ||
throw new Error(consts_1.ErrorMessages.IE_0001); | ||
try { | ||
exports.initPromise = (0, core_1.initCore)(settingsInput); | ||
exports.initPromise = (0, core_1.initCore)(settings); | ||
await exports.initPromise; | ||
@@ -20,0 +20,0 @@ (0, core_1.debug)(consts_1.EVENTS_NAMESPACE)('eventsClient library initialized'); |
@@ -1,8 +0,10 @@ | ||
import { SettingsParamsServer } from '@sitecore-cloudsdk/core'; | ||
import { ServerSettings } from '@sitecore-cloudsdk/core'; | ||
import { HttpResponse, MiddlewareNextResponse, Request } from '@sitecore-cloudsdk/utils'; | ||
/** | ||
* Initiates the server Events library using the global settings added by the developer | ||
* @param request - The request object, either a Middleware Request or an HTTP Request | ||
* @param response - The response object, either a Middleware Next Response or an HTTP Response | ||
* @param settings - Global settings added by the developer | ||
* @returns A promise that resolves with an object that handles the library functionality | ||
*/ | ||
export declare function initServer<Response extends MiddlewareNextResponse | HttpResponse>(settingsInput: SettingsParamsServer, request: Request, response: Response): Promise<void>; | ||
export declare function initServer<Response extends MiddlewareNextResponse | HttpResponse>(request: Request, response: Response, settings: ServerSettings): Promise<void>; |
@@ -9,8 +9,10 @@ "use strict"; | ||
* Initiates the server Events library using the global settings added by the developer | ||
* @param request - The request object, either a Middleware Request or an HTTP Request | ||
* @param response - The response object, either a Middleware Next Response or an HTTP Response | ||
* @param settings - Global settings added by the developer | ||
* @returns A promise that resolves with an object that handles the library functionality | ||
*/ | ||
async function initServer(settingsInput, request, response) { | ||
async function initServer(request, response, settings) { | ||
try { | ||
await (0, core_1.initCoreServer)(settingsInput, request, response); | ||
await (0, core_1.initCoreServer)(settings, request, response); | ||
(0, core_1.debug)(consts_1.EVENTS_NAMESPACE)('eventsServer library initialized'); | ||
@@ -17,0 +19,0 @@ } |
@@ -6,2 +6,2 @@ export { initServer as init } from './lib/initializer/server/initializer'; | ||
export { LIBRARY_VERSION, EVENTS_NAMESPACE } from './lib/consts'; | ||
export type { PageViewEventInput, CustomEventInput, IdentityEventAttributesInput } from './lib/events'; | ||
export type { PageViewData, EventData, IdentityData } from './lib/events'; |
{ | ||
"name": "@sitecore-cloudsdk/events", | ||
"version": "0.2.4", | ||
"version": "0.3.0", | ||
"license": "Apache-2.0", | ||
"homepage": "https://doc.sitecore.com/xmc/en/developers/xm-cloud/sitecore-cloud-sdk.html", | ||
"homepage": "https://doc.sitecore.com/xmc/en/developers/sdk/latest/cloud-sdk/index.html", | ||
"exports": { | ||
@@ -19,4 +19,4 @@ "./server": { | ||
"dependencies": { | ||
"@sitecore-cloudsdk/core": "^0.2.4", | ||
"@sitecore-cloudsdk/utils": "^0.2.4" | ||
"@sitecore-cloudsdk/core": "^0.3.0", | ||
"@sitecore-cloudsdk/utils": "^0.3.0" | ||
}, | ||
@@ -39,5 +39,4 @@ "scripts": { | ||
"engines": { | ||
"node": ">=18", | ||
"npm": ">=9" | ||
"node": ">=18" | ||
} | ||
} |
export { getBrowserId } from '@sitecore-cloudsdk/core'; | ||
export { init } from './lib/initializer/browser/initializer'; | ||
export type { PageViewEventInput, CustomEventInput, IdentityEventAttributesInput } from './lib/events'; | ||
export type { PageViewData, EventData, IdentityData } from './lib/events'; | ||
export { addToEventQueue } from './lib/eventStorage/addToEventQueue'; | ||
@@ -5,0 +5,0 @@ export { processEventQueue } from './lib/eventStorage/processEventQueue'; |
@@ -12,5 +12,5 @@ /** | ||
IV_0004 = "[IV-0004] Incorrect value for \"expiryDate\". Format the value according to ISO 8601.", | ||
IV_0005 = "[IV-0005] This event supports maximum 50 attributes. Reduce the number of attributes.", | ||
IV_0005 = "[IV-0005] \"extensionData\" supports maximum 50 attributes. Reduce the number of attributes.", | ||
MV_0003 = "[MV-0003] \"identifiers\" is required." | ||
} | ||
export declare const EVENTS_NAMESPACE = "sitecore-cloudsdk:events"; |
@@ -17,5 +17,5 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
ErrorMessages["IV_0004"] = "[IV-0004] Incorrect value for \"expiryDate\". Format the value according to ISO 8601."; | ||
ErrorMessages["IV_0005"] = "[IV-0005] This event supports maximum 50 attributes. Reduce the number of attributes."; | ||
ErrorMessages["IV_0005"] = "[IV-0005] \"extensionData\" supports maximum 50 attributes. Reduce the number of attributes."; | ||
ErrorMessages["MV_0003"] = "[MV-0003] \"identifiers\" is required."; | ||
})(ErrorMessages || (ErrorMessages = {})); | ||
export const EVENTS_NAMESPACE = 'sitecore-cloudsdk:events'; |
@@ -33,3 +33,3 @@ import { EventAttributesInput } from './common-interfaces'; | ||
} | ||
type BaseEventData = Partial<EventAttributesInput>; | ||
type BaseEventData = EventAttributesInput; | ||
export {}; |
import { NestedObject } from '@sitecore-cloudsdk/utils'; | ||
/** | ||
* Event data received as input to be sent to Sitecore EP | ||
*/ | ||
interface MandatoryInput { | ||
channel: string; | ||
currency: string; | ||
} | ||
type MandatoryEventInput = MandatoryInput; | ||
/** | ||
* Event data that is sent to Sitecore EP | ||
*/ | ||
interface InferrableInput { | ||
/** | ||
* To be restored back to MandatoryEventInput Interface | ||
* as mandatory input parameter in version 1.0.0 | ||
*/ | ||
export interface EventAttributesInput { | ||
language?: string; | ||
page?: string; | ||
channel?: string; | ||
currency?: string; | ||
} | ||
type InferrableEventInput = InferrableInput; | ||
/** | ||
* Interface to hold the base event attributes | ||
*/ | ||
export interface EventAttributesInput extends MandatoryEventInput, InferrableEventInput { | ||
} | ||
/** | ||
* Type of the extension data that the developer can pass to events | ||
*/ | ||
export type ExtensionData = NestedObject; | ||
export {}; |
import { BaseEvent } from '../base-event'; | ||
import { EventAttributesInput } from '../common-interfaces'; | ||
import { EventAttributesInput, ExtensionData } from '../common-interfaces'; | ||
import { SendEvent } from '../send-event/sendEvent'; | ||
@@ -27,7 +27,5 @@ import { EPResponse, Settings } from '@sitecore-cloudsdk/core'; | ||
sendEvent: SendEvent; | ||
eventData: CustomEventData; | ||
eventData: EventData; | ||
id: string; | ||
extensionData?: NestedObject; | ||
settings: Settings; | ||
type: string; | ||
} | ||
@@ -45,9 +43,5 @@ /** | ||
*/ | ||
export interface CustomEventInput extends EventAttributesInput, NestedObject { | ||
export interface EventData extends EventAttributesInput, NestedObject { | ||
type: string; | ||
extensionData?: ExtensionData; | ||
} | ||
/** | ||
* Internal interface with the required/optional attributes in order to send a custom event to SitecoreCloud API | ||
*/ | ||
interface CustomEventData extends Partial<EventAttributesInput>, NestedObject { | ||
} | ||
export {}; |
@@ -12,3 +12,3 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
constructor(args) { | ||
const { channel, currency, language, page, ...rest } = args.eventData; | ||
const { channel, currency, language, page, type, extensionData, ...rest } = args.eventData; | ||
super({ channel, currency, language, page }, args.id); | ||
@@ -19,7 +19,7 @@ this.extensionData = {}; | ||
this.customEventPayload = { | ||
type: args.type, | ||
type, | ||
...rest, | ||
}; | ||
if (args.extensionData) | ||
this.extensionData = flattenObject({ object: args.extensionData }); | ||
if (extensionData) | ||
this.extensionData = flattenObject({ object: extensionData }); | ||
const numberOfExtensionDataProperties = Object.entries(this.extensionData).length; | ||
@@ -26,0 +26,0 @@ if (numberOfExtensionDataProperties > MAX_EXT_ATTRIBUTES) |
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { ExtensionData } from '../common-interfaces'; | ||
import { CustomEventInput } from './custom-event'; | ||
import { EventData } from './custom-event'; | ||
/** | ||
* A function that sends an event to SitecoreCloud API with the specified type | ||
* @param type - The required type of the event | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function event(type: string, eventData: CustomEventInput, extensionData?: ExtensionData): Promise<EPResponse | null>; | ||
export declare function event(eventData: EventData): Promise<EPResponse | null>; |
@@ -9,9 +9,7 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
* A function that sends an event to SitecoreCloud API with the specified type | ||
* @param type - The required type of the event | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export async function event(type, eventData, extensionData) { | ||
export async function event(eventData) { | ||
await awaitInit(); | ||
@@ -22,8 +20,6 @@ const settings = handleGetSettingsError(getSettings, ErrorMessages.IE_0004); | ||
eventData, | ||
extensionData, | ||
id, | ||
sendEvent, | ||
settings, | ||
type, | ||
}).send(); | ||
} |
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { ExtensionData } from '../common-interfaces'; | ||
import { CustomEventInput } from './custom-event'; | ||
import { EventData } from './custom-event'; | ||
import { Request } from '@sitecore-cloudsdk/utils'; | ||
/** | ||
* A function that sends an event to SitecoreCloud API with the specified type | ||
* @param type - The required type of the event | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function eventServer<T extends Request>(type: string, eventData: CustomEventInput, request: T, extensionData?: ExtensionData): Promise<EPResponse | null>; | ||
export declare function eventServer<T extends Request>(request: T, eventData: EventData): Promise<EPResponse | null>; |
@@ -8,9 +8,8 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
* A function that sends an event to SitecoreCloud API with the specified type | ||
* @param type - The required type of the event | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export function eventServer(type, eventData, request, extensionData) { | ||
export function eventServer(request, eventData) { | ||
const settings = handleGetSettingsError(getSettingsServer, ErrorMessages.IE_0005); | ||
@@ -20,8 +19,6 @@ const id = getBrowserIdFromRequest(request, settings.cookieSettings.cookieName); | ||
eventData, | ||
extensionData, | ||
id, | ||
sendEvent, | ||
settings, | ||
type, | ||
}).send(); | ||
} |
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
/** | ||
* A function that sends a form event to SitecoreCloud API | ||
* | ||
* @param formId - The required form ID string | ||
@@ -5,0 +6,0 @@ * @param interactionType - The required interaction type string. Possible values: "VIEWED", "SUBMITTED" |
@@ -9,2 +9,3 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
* A function that sends a form event to SitecoreCloud API | ||
* | ||
* @param formId - The required form ID string | ||
@@ -20,6 +21,8 @@ * @param interactionType - The required interaction type string. Possible values: "VIEWED", "SUBMITTED" | ||
const formEvent = new CustomEvent({ | ||
eventData: {}, | ||
extensionData: { | ||
formId, | ||
interactionType: interactionType.toUpperCase(), | ||
eventData: { | ||
extensionData: { | ||
formId, | ||
interactionType: interactionType.toUpperCase(), | ||
}, | ||
type: 'FORM', | ||
}, | ||
@@ -29,3 +32,2 @@ id, | ||
settings, | ||
type: 'FORM', | ||
}); | ||
@@ -32,0 +34,0 @@ formEvent.page = undefined; |
@@ -7,3 +7,3 @@ import { BaseEvent } from '../base-event'; | ||
export declare class IdentityEvent extends BaseEvent { | ||
private eventData; | ||
private identityData; | ||
private sendEvent; | ||
@@ -15,2 +15,3 @@ private extensionData; | ||
* A class that extends from {@link BaseEvent} and has all the required functionality to send a VIEW event | ||
* | ||
* @param args - Unified object containing the required properties | ||
@@ -21,3 +22,3 @@ */ | ||
* Function that validates the identifiers object, email and date attributes for CDN users | ||
* * @param eventData - The data to be validated | ||
* * @param identityData - The data to be validated | ||
*/ | ||
@@ -47,3 +48,3 @@ private validateAttributes; | ||
*/ | ||
export interface IdentityEventAttributesInput extends EventAttributesInput { | ||
export interface IdentityData extends EventAttributesInput { | ||
city?: string; | ||
@@ -63,2 +64,3 @@ country?: string; | ||
title?: string; | ||
extensionData?: ExtensionData; | ||
} | ||
@@ -99,4 +101,3 @@ /** | ||
sendEvent: SendEvent; | ||
eventData: IdentityEventAttributesInput; | ||
extensionData?: ExtensionData; | ||
identityData: IdentityData; | ||
id: string; | ||
@@ -103,0 +104,0 @@ settings: Settings; |
@@ -9,15 +9,16 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
* A class that extends from {@link BaseEvent} and has all the required functionality to send a VIEW event | ||
* | ||
* @param args - Unified object containing the required properties | ||
*/ | ||
constructor(args) { | ||
const { channel, currency, language, page } = args.eventData; | ||
const { channel, currency, language, page, extensionData } = args.identityData; | ||
super({ channel, currency, language, page }, args.id); | ||
this.extensionData = {}; | ||
this.numberOfExtensionDataProperties = 0; | ||
this.validateAttributes(args.eventData); | ||
this.eventData = args.eventData; | ||
this.validateAttributes(args.identityData); | ||
this.identityData = args.identityData; | ||
this.sendEvent = args.sendEvent; | ||
this.settings = args.settings; | ||
if (args.extensionData) | ||
this.extensionData = flattenObject({ object: args.extensionData }); | ||
if (extensionData) | ||
this.extensionData = flattenObject({ object: extensionData }); | ||
this.numberOfExtensionDataProperties = Object.entries(this.extensionData).length; | ||
@@ -29,14 +30,14 @@ if (this.numberOfExtensionDataProperties > MAX_EXT_ATTRIBUTES) | ||
* Function that validates the identifiers object, email and date attributes for CDN users | ||
* * @param eventData - The data to be validated | ||
* * @param identityData - The data to be validated | ||
*/ | ||
validateAttributes(eventData) { | ||
if (eventData.identifiers.length === 0) | ||
validateAttributes(identityData) { | ||
if (identityData.identifiers.length === 0) | ||
throw new Error(ErrorMessages.MV_0003); | ||
if (eventData.dob !== undefined && !isShortISODateString(eventData.dob)) | ||
if (identityData.dob !== undefined && !isShortISODateString(identityData.dob)) | ||
throw new Error(ErrorMessages.IV_0002); | ||
eventData.identifiers.forEach((identifier) => { | ||
identityData.identifiers.forEach((identifier) => { | ||
if (identifier.expiryDate && !isShortISODateString(identifier.expiryDate)) | ||
throw new Error(ErrorMessages.IV_0004); | ||
}); | ||
if (eventData.email && !isValidEmail(eventData.email)) | ||
if (identityData.email && !isValidEmail(identityData.email)) | ||
throw new Error(ErrorMessages.IV_0003); | ||
@@ -50,9 +51,9 @@ } | ||
const identityPayload = { | ||
city: this.eventData.city, | ||
country: this.eventData.country, | ||
dob: this.eventData.dob, | ||
email: this.eventData.email, | ||
firstname: this.eventData.firstName, | ||
gender: this.eventData.gender, | ||
identifiers: this.eventData.identifiers.map((value) => { | ||
city: this.identityData.city, | ||
country: this.identityData.country, | ||
dob: this.identityData.dob, | ||
email: this.identityData.email, | ||
firstname: this.identityData.firstName, | ||
gender: this.identityData.gender, | ||
identifiers: this.identityData.identifiers.map((value) => { | ||
return { | ||
@@ -65,10 +66,10 @@ // eslint-disable-next-line @typescript-eslint/naming-convention | ||
}), | ||
lastname: this.eventData.lastName, | ||
mobile: this.eventData.mobile, | ||
phone: this.eventData.phone, | ||
lastname: this.identityData.lastName, | ||
mobile: this.identityData.mobile, | ||
phone: this.identityData.phone, | ||
// eslint-disable-next-line @typescript-eslint/naming-convention | ||
postal_code: this.eventData.postalCode, | ||
state: this.eventData.state, | ||
street: this.eventData.street, | ||
title: this.eventData.title, | ||
postal_code: this.identityData.postalCode, | ||
state: this.identityData.state, | ||
street: this.identityData.street, | ||
title: this.identityData.title, | ||
type: 'IDENTITY', | ||
@@ -75,0 +76,0 @@ }; |
@@ -1,11 +0,9 @@ | ||
import { ExtensionData } from '../common-interfaces'; | ||
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { IdentityEventAttributesInput } from './identity-event'; | ||
import { IdentityData } from './identity-event'; | ||
/** | ||
* A function that sends an IDENTITY event to SitecoreCloud API | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function identity(eventData: IdentityEventAttributesInput, extensionData?: ExtensionData): Promise<EPResponse | null>; | ||
export declare function identity(identityData: IdentityData): Promise<EPResponse | null>; |
@@ -0,1 +1,2 @@ | ||
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
import { getBrowserId, getSettings, handleGetSettingsError } from '@sitecore-cloudsdk/core'; | ||
@@ -8,8 +9,7 @@ import { IdentityEvent } from './identity-event'; | ||
* A function that sends an IDENTITY event to SitecoreCloud API | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export async function identity(eventData, extensionData) { | ||
export async function identity(identityData) { | ||
await awaitInit(); | ||
@@ -19,5 +19,4 @@ const settings = handleGetSettingsError(getSettings, ErrorMessages.IE_0004); | ||
return new IdentityEvent({ | ||
eventData, | ||
extensionData, | ||
id, | ||
identityData, | ||
sendEvent, | ||
@@ -24,0 +23,0 @@ settings, |
@@ -1,13 +0,11 @@ | ||
import { ExtensionData } from '../common-interfaces'; | ||
import { Request } from '@sitecore-cloudsdk/utils'; | ||
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { IdentityEventAttributesInput } from './identity-event'; | ||
import { IdentityData } from './identity-event'; | ||
/** | ||
* A function that sends an IDENTITY event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @param identityData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function identityServer(eventData: IdentityEventAttributesInput, request: Request, extensionData?: ExtensionData): Promise<EPResponse | null>; | ||
export declare function identityServer(request: Request, identityData: IdentityData): Promise<EPResponse | null>; |
@@ -8,15 +8,13 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
* A function that sends an IDENTITY event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @param identityData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export function identityServer(eventData, request, extensionData) { | ||
export function identityServer(request, identityData) { | ||
const settings = handleGetSettingsError(getSettingsServer, ErrorMessages.IE_0005); | ||
const id = getBrowserIdFromRequest(request, settings.cookieSettings.cookieName); | ||
return new IdentityEvent({ | ||
eventData, | ||
extensionData, | ||
id, | ||
identityData, | ||
sendEvent, | ||
@@ -23,0 +21,0 @@ settings: settings, |
export { BaseEvent } from './base-event'; | ||
export type { BasePayload } from './base-event'; | ||
export { PageViewEvent } from './page-view/page-view-event'; | ||
export type { PageViewEventInput, PageViewEventPayload } from './page-view/page-view-event'; | ||
export type { PageViewData, PageViewEventPayload } from './page-view/page-view-event'; | ||
export { CustomEvent } from './custom-event/custom-event'; | ||
export type { CustomEventInput, CustomEventPayload, CustomEventArguments } from './custom-event/custom-event'; | ||
export type { EventData, CustomEventPayload, CustomEventArguments } from './custom-event/custom-event'; | ||
export { IdentityEvent } from './identity/identity-event'; | ||
export type { IdentityEventAttributesInput, IdentityEventPayload } from './identity/identity-event'; | ||
export type { IdentityData, IdentityEventPayload } from './identity/identity-event'; | ||
export type { ExtensionData } from './common-interfaces'; |
import { EPResponse, Infer, Settings } from '@sitecore-cloudsdk/core'; | ||
import { FlattenedObject, NestedObject } from '@sitecore-cloudsdk/utils'; | ||
import { BaseEvent } from '../base-event'; | ||
import { EventAttributesInput } from '../common-interfaces'; | ||
import { EventAttributesInput, ExtensionData } from '../common-interfaces'; | ||
import { SendEvent } from '../send-event/sendEvent'; | ||
@@ -9,3 +9,3 @@ export declare class PageViewEvent extends BaseEvent { | ||
private sendEvent; | ||
private eventData; | ||
private pageViewData; | ||
private extensionData; | ||
@@ -53,3 +53,3 @@ private urlSearchParams; | ||
sendEvent: SendEvent; | ||
eventData: PageViewEventInput; | ||
pageViewData: PageViewData; | ||
id: string; | ||
@@ -64,6 +64,7 @@ settings: Settings; | ||
*/ | ||
export interface PageViewEventInput extends EventAttributesInput { | ||
export interface PageViewData extends EventAttributesInput { | ||
pageVariantId?: string; | ||
referrer?: string; | ||
includeUTMParameters?: boolean; | ||
extensionData?: ExtensionData; | ||
} | ||
@@ -70,0 +71,0 @@ /** |
@@ -11,3 +11,3 @@ import { flattenObject } from '@sitecore-cloudsdk/utils'; | ||
constructor(args) { | ||
const { channel, currency, language, page } = args.eventData; | ||
const { channel, currency, language, page, extensionData } = args.pageViewData; | ||
super({ | ||
@@ -20,8 +20,8 @@ channel, | ||
this.extensionData = {}; | ||
this.eventData = args.eventData; | ||
this.pageViewData = args.pageViewData; | ||
this.sendEvent = args.sendEvent; | ||
this.settings = args.settings; | ||
this.urlSearchParams = new URLSearchParams(decodeURI(args.searchParams)); | ||
if (args.extensionData) | ||
this.extensionData = flattenObject({ object: args.extensionData }); | ||
if (extensionData) | ||
this.extensionData = flattenObject({ object: extensionData }); | ||
const numberOfExtensionDataProperties = Object.entries(this.extensionData).length; | ||
@@ -31,3 +31,3 @@ if (numberOfExtensionDataProperties > MAX_EXT_ATTRIBUTES) | ||
this.includeUTMParameters = | ||
args.eventData.includeUTMParameters === undefined ? true : args.eventData.includeUTMParameters; | ||
args.pageViewData.includeUTMParameters === undefined ? true : args.pageViewData.includeUTMParameters; | ||
} | ||
@@ -39,5 +39,5 @@ /** | ||
*/ | ||
getPageVariantId(pageVariantIdFromEventData, pageVariantIdFromExt) { | ||
if (pageVariantIdFromEventData) | ||
return pageVariantIdFromEventData; | ||
getPageVariantId(pageVariantIdFromPageViewData, pageVariantIdFromExt) { | ||
if (pageVariantIdFromPageViewData) | ||
return pageVariantIdFromPageViewData; | ||
const pageVariantIdFromURL = this.urlSearchParams.get('variantid'); | ||
@@ -56,4 +56,4 @@ if (pageVariantIdFromURL) | ||
getReferrer() { | ||
if (this.eventData.referrer) | ||
return this.eventData.referrer; | ||
if (this.pageViewData.referrer) | ||
return this.pageViewData.referrer; | ||
if (typeof window === 'undefined') | ||
@@ -74,3 +74,3 @@ return null; | ||
}; | ||
const pageVariantId = this.getPageVariantId(this.eventData.pageVariantId, this.extensionData['pageVariantId']); | ||
const pageVariantId = this.getPageVariantId(this.pageViewData.pageVariantId, this.extensionData['pageVariantId']); | ||
if (pageVariantId !== null) | ||
@@ -77,0 +77,0 @@ viewPayload.ext = { ...viewPayload.ext, pageVariantId }; |
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { NestedObject, Request } from '@sitecore-cloudsdk/utils'; | ||
import { PageViewEventInput } from './page-view-event'; | ||
import { Request } from '@sitecore-cloudsdk/utils'; | ||
import { PageViewData } from './page-view-event'; | ||
/** | ||
* A function that sends a VIEW event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @param pageViewData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function pageViewServer<T extends Request>(eventData: PageViewEventInput, request: T, extensionData?: NestedObject): Promise<EPResponse | null>; | ||
export declare function pageViewServer<T extends Request>(request: T, pageViewData: PageViewData): Promise<EPResponse | null>; |
@@ -8,9 +8,8 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
* A function that sends a VIEW event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* | ||
* @param request - Interface with constraint for extending request | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @param pageViewData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export function pageViewServer(eventData, request, extensionData) { | ||
export function pageViewServer(request, pageViewData) { | ||
const settings = handleGetSettingsError(getSettingsServer, ErrorMessages.IE_0005); | ||
@@ -21,5 +20,4 @@ const id = getBrowserIdFromRequest(request, settings.cookieSettings.cookieName); | ||
return new PageViewEvent({ | ||
eventData, | ||
extensionData, | ||
id, | ||
pageViewData, | ||
searchParams: requestUrl.search, | ||
@@ -26,0 +24,0 @@ sendEvent, |
import { EPResponse } from '@sitecore-cloudsdk/core'; | ||
import { NestedObject } from '@sitecore-cloudsdk/utils'; | ||
import { PageViewEventInput } from './page-view-event'; | ||
import { PageViewData } from './page-view-event'; | ||
/** | ||
* A function that sends a VIEW event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* | ||
* @param pageViewData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export declare function pageView(eventData: PageViewEventInput, extensionData?: NestedObject): Promise<EPResponse | null>; | ||
export declare function pageView(pageViewData: PageViewData): Promise<EPResponse | null>; |
@@ -9,8 +9,8 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
* A function that sends a VIEW event to SitecoreCloud API | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* | ||
* @param pageViewData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* This object will be flattened and sent in the ext object of the payload | ||
* @returns The response object that Sitecore EP returns | ||
*/ | ||
export async function pageView(eventData, extensionData) { | ||
export async function pageView(pageViewData) { | ||
await awaitInit(); | ||
@@ -20,5 +20,4 @@ const settings = handleGetSettingsError(getSettings, ErrorMessages.IE_0004); | ||
return new PageViewEvent({ | ||
eventData, | ||
extensionData, | ||
id, | ||
pageViewData, | ||
searchParams: window.location.search, | ||
@@ -25,0 +24,0 @@ sendEvent, |
@@ -1,9 +0,7 @@ | ||
import { CustomEventInput, ExtensionData } from '../events'; | ||
import { EventData } from '../events'; | ||
/** | ||
* A function that adds event to the queue | ||
* @param type - The required type of the event | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
*/ | ||
export declare function addToEventQueue(type: string, eventData: CustomEventInput, extensionData?: ExtensionData): Promise<void>; | ||
export declare function addToEventQueue(eventData: EventData): Promise<void>; |
@@ -8,8 +8,6 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
* A function that adds event to the queue | ||
* @param type - The required type of the event | ||
* | ||
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API | ||
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API. | ||
* This object will be flattened and sent in the ext object of the payload | ||
*/ | ||
export async function addToEventQueue(type, eventData, extensionData) { | ||
export async function addToEventQueue(eventData) { | ||
await awaitInit(); | ||
@@ -20,8 +18,6 @@ const settings = handleGetSettingsError(getSettings, ErrorMessages.IE_0004); | ||
eventData, | ||
extensionData, | ||
id, | ||
settings, | ||
type, | ||
}; | ||
eventQueue.enqueueEvent(queueEventPayload); | ||
} |
@@ -33,4 +33,4 @@ import { CustomEventArguments } from '../events'; | ||
} | ||
export type QueueEventPayload = Pick<CustomEventArguments, 'eventData' | 'extensionData' | 'type' | 'settings' | 'id'>; | ||
export type QueueEventPayload = Pick<CustomEventArguments, 'eventData' | 'settings' | 'id'>; | ||
export declare const eventQueue: EventQueue; | ||
export {}; |
@@ -49,7 +49,5 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
eventData: queueEventPayload.eventData, | ||
extensionData: queueEventPayload.extensionData, | ||
id: queueEventPayload.id, | ||
sendEvent, | ||
settings: queueEventPayload.settings, | ||
type: queueEventPayload.type, | ||
}).send(); | ||
@@ -56,0 +54,0 @@ } |
@@ -1,9 +0,9 @@ | ||
import { SettingsParamsBrowser } from '@sitecore-cloudsdk/core'; | ||
import { BrowserSettings } from '@sitecore-cloudsdk/core'; | ||
export declare let initPromise: Promise<void> | null; | ||
/** | ||
* Initiates the Events library using the global settings added by the developer | ||
* @param settingsInput - Global settings added by the developer | ||
* @param settings - Global settings added by the developer | ||
* @returns A promise that resolves with an object that handles the library functionality | ||
*/ | ||
export declare function init(settingsInput: SettingsParamsBrowser): Promise<void>; | ||
export declare function init(settings: BrowserSettings): Promise<void>; | ||
/** | ||
@@ -10,0 +10,0 @@ * A function that handles the async browser init logic. Throws an error or awaits the promise. |
@@ -7,10 +7,10 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
* Initiates the Events library using the global settings added by the developer | ||
* @param settingsInput - Global settings added by the developer | ||
* @param settings - Global settings added by the developer | ||
* @returns A promise that resolves with an object that handles the library functionality | ||
*/ | ||
export async function init(settingsInput) { | ||
export async function init(settings) { | ||
if (typeof window === 'undefined') | ||
throw new Error(ErrorMessages.IE_0001); | ||
try { | ||
initPromise = initCore(settingsInput); | ||
initPromise = initCore(settings); | ||
await initPromise; | ||
@@ -17,0 +17,0 @@ debug(EVENTS_NAMESPACE)('eventsClient library initialized'); |
@@ -1,8 +0,10 @@ | ||
import { SettingsParamsServer } from '@sitecore-cloudsdk/core'; | ||
import { ServerSettings } from '@sitecore-cloudsdk/core'; | ||
import { HttpResponse, MiddlewareNextResponse, Request } from '@sitecore-cloudsdk/utils'; | ||
/** | ||
* Initiates the server Events library using the global settings added by the developer | ||
* @param request - The request object, either a Middleware Request or an HTTP Request | ||
* @param response - The response object, either a Middleware Next Response or an HTTP Response | ||
* @param settings - Global settings added by the developer | ||
* @returns A promise that resolves with an object that handles the library functionality | ||
*/ | ||
export declare function initServer<Response extends MiddlewareNextResponse | HttpResponse>(settingsInput: SettingsParamsServer, request: Request, response: Response): Promise<void>; | ||
export declare function initServer<Response extends MiddlewareNextResponse | HttpResponse>(request: Request, response: Response, settings: ServerSettings): Promise<void>; |
@@ -6,8 +6,10 @@ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S. | ||
* Initiates the server Events library using the global settings added by the developer | ||
* @param request - The request object, either a Middleware Request or an HTTP Request | ||
* @param response - The response object, either a Middleware Next Response or an HTTP Response | ||
* @param settings - Global settings added by the developer | ||
* @returns A promise that resolves with an object that handles the library functionality | ||
*/ | ||
export async function initServer(settingsInput, request, response) { | ||
export async function initServer(request, response, settings) { | ||
try { | ||
await initCoreServer(settingsInput, request, response); | ||
await initCoreServer(settings, request, response); | ||
debug(EVENTS_NAMESPACE)('eventsServer library initialized'); | ||
@@ -14,0 +16,0 @@ } |
@@ -6,2 +6,2 @@ export { initServer as init } from './lib/initializer/server/initializer'; | ||
export { LIBRARY_VERSION, EVENTS_NAMESPACE } from './lib/consts'; | ||
export type { PageViewEventInput, CustomEventInput, IdentityEventAttributesInput } from './lib/events'; | ||
export type { PageViewData, EventData, IdentityData } from './lib/events'; |
{ | ||
"name": "@sitecore-cloudsdk/events", | ||
"version": "0.2.4", | ||
"version": "0.3.0", | ||
"license": "Apache-2.0", | ||
"homepage": "https://doc.sitecore.com/xmc/en/developers/xm-cloud/sitecore-cloud-sdk.html", | ||
"homepage": "https://doc.sitecore.com/xmc/en/developers/sdk/latest/cloud-sdk/index.html", | ||
"exports": { | ||
@@ -19,4 +19,4 @@ "./server": { | ||
"dependencies": { | ||
"@sitecore-cloudsdk/core": "^0.2.4", | ||
"@sitecore-cloudsdk/utils": "^0.2.4" | ||
"@sitecore-cloudsdk/core": "^0.3.0", | ||
"@sitecore-cloudsdk/utils": "^0.3.0" | ||
}, | ||
@@ -39,5 +39,4 @@ "scripts": { | ||
"engines": { | ||
"node": ">=18", | ||
"npm": ">=9" | ||
"node": ">=18" | ||
} | ||
} |
@@ -59,13 +59,4 @@ # events | ||
const sendPageViewEvent = async () => { | ||
let eventData: any = { | ||
channel: 'WEB', | ||
currency: 'EUR', | ||
}; | ||
await pageView(); | ||
let extensionData: any = { | ||
customKey: 'customValue', | ||
}; | ||
await pageView(eventData, extensionData); | ||
console.log('Sent VIEW event.'); | ||
@@ -92,25 +83,12 @@ }; | ||
await init( | ||
{ | ||
sitecoreEdgeContextId: process.env.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID || '', | ||
siteName: process.env.NEXT_PUBLIC_SITENAME || '', | ||
enableServerCookie: true, | ||
}, | ||
req, | ||
res | ||
); | ||
await init(req, res, { | ||
sitecoreEdgeContextId: process.env.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID || '', | ||
siteName: process.env.NEXT_PUBLIC_SITENAME || '', | ||
enableServerCookie: true, | ||
}); | ||
console.log(`Initialized "@sitecore-cloudsdk/events/server".`); | ||
let eventData: any = { | ||
channel: 'WEB', | ||
currency: 'EUR', | ||
}; | ||
const pageViewRes = await pageView(req); | ||
let extensionData: any = { | ||
customKey: 'customValue', | ||
}; | ||
const pageViewRes = await pageView(eventData, req, extensionData); | ||
console.log('Sent VIEW event.'); | ||
@@ -124,2 +102,2 @@ | ||
[Official Sitecore Cloud SDK documentation](https://doc.sitecore.com/xmc/en/developers/xm-cloud/sitecore-cloud-sdk.html) | ||
[Official Sitecore Cloud SDK documentation](https://doc.sitecore.com/xmc/en/developers/sdk/latest/cloud-sdk/index.html) |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
182347
2529
101
+ Added@sitecore-cloudsdk/core@0.3.1(transitive)
+ Added@sitecore-cloudsdk/utils@0.3.1(transitive)
- Removed@sitecore-cloudsdk/core@0.2.4(transitive)
- Removed@sitecore-cloudsdk/utils@0.2.4(transitive)