@sitecore-cloudsdk/events 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/package.json +4 -8
- package/dist/cjs/src/lib/consts.d.ts +0 -10
- package/dist/cjs/src/lib/consts.js +2 -13
- package/dist/cjs/src/lib/ep/EventApiClient.d.ts +18 -0
- package/dist/cjs/src/lib/ep/EventApiClient.js +34 -0
- package/dist/cjs/src/lib/eventStorage/addToEventQueue.d.ts +1 -1
- package/dist/cjs/src/lib/eventStorage/addToEventQueue.js +3 -8
- package/dist/cjs/src/lib/eventStorage/clearEventQueue.d.ts +1 -1
- package/dist/cjs/src/lib/eventStorage/clearEventQueue.js +3 -4
- package/dist/cjs/src/lib/eventStorage/eventStorage.d.ts +8 -4
- package/dist/cjs/src/lib/eventStorage/eventStorage.js +15 -15
- package/dist/cjs/src/lib/eventStorage/processEventQueue.d.ts +1 -1
- package/dist/cjs/src/lib/eventStorage/processEventQueue.js +3 -4
- package/dist/cjs/src/lib/events/base-event.d.ts +3 -1
- package/dist/cjs/src/lib/events/base-event.js +2 -1
- package/dist/cjs/src/lib/events/custom-event/custom-event.d.ts +3 -4
- package/dist/cjs/src/lib/events/custom-event/custom-event.js +4 -6
- package/dist/cjs/src/lib/events/custom-event/event.js +3 -7
- package/dist/cjs/src/lib/events/custom-event/eventServer.js +4 -4
- package/dist/cjs/src/lib/events/custom-event/form.js +4 -8
- package/dist/cjs/src/lib/events/identity/identity-event.d.ts +3 -4
- package/dist/cjs/src/lib/events/identity/identity-event.js +8 -10
- package/dist/cjs/src/lib/events/identity/identity.js +5 -8
- package/dist/cjs/src/lib/events/identity/identityServer.js +3 -3
- package/dist/cjs/src/lib/events/page-view/page-view-event.d.ts +3 -4
- package/dist/cjs/src/lib/events/page-view/page-view-event.js +5 -6
- package/dist/cjs/src/lib/events/page-view/page-view-server.js +3 -3
- package/dist/cjs/src/lib/events/page-view/page-view.js +4 -9
- package/dist/cjs/src/lib/getGuestId/getGuestId.js +4 -6
- package/dist/cjs/src/lib/initializer/browser/initializer.d.ts +19 -6
- package/dist/cjs/src/lib/initializer/browser/initializer.js +39 -21
- package/dist/cjs/src/lib/initializer/server/initializer.d.ts +16 -1
- package/dist/cjs/src/lib/initializer/server/initializer.js +28 -1
- package/dist/cjs/src/server.d.ts +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/package.json +4 -8
- package/dist/esm/src/lib/consts.d.ts +0 -10
- package/dist/esm/src/lib/consts.js +1 -12
- package/dist/esm/src/lib/ep/EventApiClient.d.ts +18 -0
- package/dist/esm/src/lib/ep/EventApiClient.js +30 -0
- package/dist/esm/src/lib/eventStorage/addToEventQueue.d.ts +1 -1
- package/dist/esm/src/lib/eventStorage/addToEventQueue.js +3 -8
- package/dist/esm/src/lib/eventStorage/clearEventQueue.d.ts +1 -1
- package/dist/esm/src/lib/eventStorage/clearEventQueue.js +3 -4
- package/dist/esm/src/lib/eventStorage/eventStorage.d.ts +8 -4
- package/dist/esm/src/lib/eventStorage/eventStorage.js +14 -15
- package/dist/esm/src/lib/eventStorage/processEventQueue.d.ts +1 -1
- package/dist/esm/src/lib/eventStorage/processEventQueue.js +3 -4
- package/dist/esm/src/lib/events/base-event.d.ts +3 -1
- package/dist/esm/src/lib/events/base-event.js +2 -1
- package/dist/esm/src/lib/events/custom-event/custom-event.d.ts +3 -4
- package/dist/esm/src/lib/events/custom-event/custom-event.js +4 -6
- package/dist/esm/src/lib/events/custom-event/event.js +4 -8
- package/dist/esm/src/lib/events/custom-event/eventServer.js +5 -5
- package/dist/esm/src/lib/events/custom-event/form.js +4 -8
- package/dist/esm/src/lib/events/identity/identity-event.d.ts +3 -4
- package/dist/esm/src/lib/events/identity/identity-event.js +8 -10
- package/dist/esm/src/lib/events/identity/identity.js +5 -8
- package/dist/esm/src/lib/events/identity/identityServer.js +4 -4
- package/dist/esm/src/lib/events/page-view/page-view-event.d.ts +3 -4
- package/dist/esm/src/lib/events/page-view/page-view-event.js +5 -6
- package/dist/esm/src/lib/events/page-view/page-view-server.js +4 -4
- package/dist/esm/src/lib/events/page-view/page-view.js +4 -9
- package/dist/esm/src/lib/getGuestId/getGuestId.js +4 -6
- package/dist/esm/src/lib/initializer/browser/initializer.d.ts +19 -6
- package/dist/esm/src/lib/initializer/browser/initializer.js +37 -20
- package/dist/esm/src/lib/initializer/server/initializer.d.ts +16 -1
- package/dist/esm/src/lib/initializer/server/initializer.js +26 -1
- package/dist/esm/src/server.d.ts +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -8
- package/dist/cjs/src/lib/events/send-event/sendEvent.d.ts +0 -17
- package/dist/cjs/src/lib/events/send-event/sendEvent.js +0 -29
- package/dist/esm/src/lib/events/send-event/sendEvent.d.ts +0 -17
- package/dist/esm/src/lib/events/send-event/sendEvent.js +0 -25
package/dist/cjs/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sitecore-cloudsdk/events",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": {
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@sitecore-cloudsdk/core": "^0.
|
|
19
|
-
"@sitecore-cloudsdk/utils": "^0.
|
|
18
|
+
"@sitecore-cloudsdk/core": "^0.1.3",
|
|
19
|
+
"@sitecore-cloudsdk/utils": "^0.1.3"
|
|
20
20
|
},
|
|
21
21
|
"scripts": {
|
|
22
22
|
"build": "npm run build:cjs && npm run build:es",
|
|
@@ -32,9 +32,5 @@
|
|
|
32
32
|
"server.cjs",
|
|
33
33
|
"server.js",
|
|
34
34
|
"server.d.ts"
|
|
35
|
-
]
|
|
36
|
-
"engines": {
|
|
37
|
-
"node": ">=18",
|
|
38
|
-
"npm": ">=9"
|
|
39
|
-
}
|
|
35
|
+
]
|
|
40
36
|
}
|
|
@@ -2,13 +2,3 @@
|
|
|
2
2
|
* Returns the version of the library.
|
|
3
3
|
*/
|
|
4
4
|
export declare const LIBRARY_VERSION: string;
|
|
5
|
-
export declare enum ErrorMessages {
|
|
6
|
-
IE_0001 = "[IE-0001] The \"window\" object is not available on the server side. Use the \"window\" object only on the client side, and in the correct execution context.",
|
|
7
|
-
IE_0004 = "[IE-0004] You must first initialize the \"events/browser\" module. Run the \"init\" function.",
|
|
8
|
-
IE_0005 = "[IE-0005] You must first initialize the \"events/server\" module. Run the \"init\" function.",
|
|
9
|
-
IV_0002 = "[IV-0002] Incorrect value for \"dob\". Format the value according to ISO 8601.",
|
|
10
|
-
IV_0003 = "[IV-0003] Incorrect value for \"email\". Set the value to a valid email address.",
|
|
11
|
-
IV_0004 = "[IV-0004] Incorrect value for \"expiryDate\". Format the value according to ISO 8601.",
|
|
12
|
-
IV_0005 = "[IV-0005] This event supports maximum 50 attributes. Reduce the number of attributes.",
|
|
13
|
-
MV_0003 = "[MV-0003] \"identifiers\" is required."
|
|
14
|
-
}
|
|
@@ -3,23 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.LIBRARY_VERSION = void 0;
|
|
7
7
|
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
|
|
8
8
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
9
9
|
const package_json_1 = __importDefault(require("../../package.json"));
|
|
10
|
-
const consts_1 = require("./events/consts");
|
|
11
10
|
/**
|
|
12
11
|
* Returns the version of the library.
|
|
13
12
|
*/
|
|
14
13
|
exports.LIBRARY_VERSION = package_json_1.default.version;
|
|
15
|
-
|
|
16
|
-
(function (ErrorMessages) {
|
|
17
|
-
ErrorMessages["IE_0001"] = "[IE-0001] The \"window\" object is not available on the server side. Use the \"window\" object only on the client side, and in the correct execution context.";
|
|
18
|
-
ErrorMessages["IE_0004"] = "[IE-0004] You must first initialize the \"events/browser\" module. Run the \"init\" function.";
|
|
19
|
-
ErrorMessages["IE_0005"] = "[IE-0005] You must first initialize the \"events/server\" module. Run the \"init\" function.";
|
|
20
|
-
ErrorMessages["IV_0002"] = "[IV-0002] Incorrect value for \"dob\". Format the value according to ISO 8601.";
|
|
21
|
-
ErrorMessages["IV_0003"] = "[IV-0003] Incorrect value for \"email\". Set the value to a valid email address.";
|
|
22
|
-
ErrorMessages["IV_0004"] = "[IV-0004] Incorrect value for \"expiryDate\". Format the value according to ISO 8601.";
|
|
23
|
-
ErrorMessages["IV_0005"] = "[IV-0005] This event supports maximum 50 attributes. Reduce the number of attributes.";
|
|
24
|
-
ErrorMessages["MV_0003"] = "[MV-0003] \"identifiers\" is required.";
|
|
25
|
-
})(ErrorMessages || (exports.ErrorMessages = ErrorMessages = {}));
|
|
14
|
+
// just a commit change
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EPResponse } from '@sitecore-cloudsdk/core';
|
|
2
|
+
import type { BasePayload, PageViewEventPayload, IdentityEventPayload, CustomEventPayload } from '../events';
|
|
3
|
+
export declare class EventApiClient implements EventApiClient {
|
|
4
|
+
private targetURL;
|
|
5
|
+
private readonly eventUrl;
|
|
6
|
+
constructor(targetURL: string, sitecoreEdgeContextId: string, siteName: string);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The interface of EventApiClient class
|
|
10
|
+
*/
|
|
11
|
+
export interface EventApiClient {
|
|
12
|
+
send(body: EPFetchBody & BasePayload): Promise<EPResponse | null>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The type describing all possible event payloads
|
|
16
|
+
*/
|
|
17
|
+
type EPFetchBody = PageViewEventPayload | IdentityEventPayload | CustomEventPayload;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventApiClient = void 0;
|
|
4
|
+
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
|
|
5
|
+
const core_1 = require("@sitecore-cloudsdk/core");
|
|
6
|
+
const consts_1 = require("../consts");
|
|
7
|
+
class EventApiClient {
|
|
8
|
+
constructor(targetURL, sitecoreEdgeContextId, siteName) {
|
|
9
|
+
this.targetURL = targetURL;
|
|
10
|
+
this.eventUrl = `${this.targetURL}/events/${core_1.API_VERSION}/events?sitecoreContextId=${sitecoreEdgeContextId}&siteId=${siteName}`;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A function that sends the payload to Sitecore EP
|
|
14
|
+
* @param body - The Request body for the Sitecore EP
|
|
15
|
+
* @returns - A promise that resolves with either the Sitecore EP response object or null
|
|
16
|
+
*/
|
|
17
|
+
async send(body) {
|
|
18
|
+
const fetchOptions = {
|
|
19
|
+
body: JSON.stringify(body),
|
|
20
|
+
headers: {
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
22
|
+
'Content-Type': 'application/json',
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
24
|
+
'X-Library-Version': consts_1.LIBRARY_VERSION,
|
|
25
|
+
},
|
|
26
|
+
method: 'POST',
|
|
27
|
+
};
|
|
28
|
+
return await fetch(this.eventUrl, fetchOptions)
|
|
29
|
+
.then((response) => response.json())
|
|
30
|
+
.then((data) => data)
|
|
31
|
+
.catch(() => null);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.EventApiClient = EventApiClient;
|
|
@@ -6,4 +6,4 @@ import { CustomEventInput, ExtensionData } from '../events';
|
|
|
6
6
|
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API.
|
|
7
7
|
* This object will be flattened and sent in the ext object of the payload
|
|
8
8
|
*/
|
|
9
|
-
export declare function addToEventQueue(type: string, eventData: CustomEventInput, extensionData?: ExtensionData):
|
|
9
|
+
export declare function addToEventQueue(type: string, eventData: CustomEventInput, extensionData?: ExtensionData): void;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addToEventQueue = void 0;
|
|
4
|
-
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
|
|
5
4
|
const initializer_1 = require("../initializer/browser/initializer");
|
|
6
|
-
const eventStorage_1 = require("./eventStorage");
|
|
7
|
-
const core_1 = require("@sitecore-cloudsdk/core");
|
|
8
5
|
/**
|
|
9
6
|
* A function that adds event to the queue
|
|
10
7
|
* @param type - The required type of the event
|
|
@@ -12,10 +9,8 @@ const core_1 = require("@sitecore-cloudsdk/core");
|
|
|
12
9
|
* @param extensionData - The optional extensionData attributes that will be sent to SitecoreCloud API.
|
|
13
10
|
* This object will be flattened and sent in the ext object of the payload
|
|
14
11
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const settings = (0, core_1.getSettings)();
|
|
18
|
-
const id = (0, core_1.getBrowserId)();
|
|
12
|
+
function addToEventQueue(type, eventData, extensionData) {
|
|
13
|
+
const { id, settings, eventQueue } = (0, initializer_1.getDependencies)();
|
|
19
14
|
const queueEventPayload = {
|
|
20
15
|
eventData,
|
|
21
16
|
extensionData,
|
|
@@ -23,6 +18,6 @@ async function addToEventQueue(type, eventData, extensionData) {
|
|
|
23
18
|
settings,
|
|
24
19
|
type,
|
|
25
20
|
};
|
|
26
|
-
|
|
21
|
+
eventQueue.enqueueEvent(queueEventPayload);
|
|
27
22
|
}
|
|
28
23
|
exports.addToEventQueue = addToEventQueue;
|
|
@@ -3,12 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.clearEventQueue = void 0;
|
|
4
4
|
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
|
|
5
5
|
const initializer_1 = require("../initializer/browser/initializer");
|
|
6
|
-
const eventStorage_1 = require("./eventStorage");
|
|
7
6
|
/**
|
|
8
7
|
* Deletes the queue from session.
|
|
9
8
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
function clearEventQueue() {
|
|
10
|
+
const { eventQueue } = (0, initializer_1.getDependencies)();
|
|
11
|
+
eventQueue.clearQueue();
|
|
13
12
|
}
|
|
14
13
|
exports.clearEventQueue = clearEventQueue;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
import { EventApiClient } from '../ep/EventApiClient';
|
|
1
2
|
import { CustomEventArguments } from '../events';
|
|
2
|
-
declare class EventQueue {
|
|
3
|
+
export declare class EventQueue {
|
|
4
|
+
private storage;
|
|
5
|
+
private eventApiClient;
|
|
3
6
|
/**
|
|
4
7
|
* Initialize the Event Storage
|
|
8
|
+
* @param storage - Interface that describes the storage functionality
|
|
9
|
+
* @param eventApiClient - The API client which sends events to EP
|
|
10
|
+
* @param infer - The instance of the infer class
|
|
5
11
|
*/
|
|
6
12
|
private key;
|
|
13
|
+
constructor(storage: Storage, eventApiClient: EventApiClient);
|
|
7
14
|
/** Returns the stored array of data with type QueueEventPayload, or empty array if the given key does not exist. */
|
|
8
15
|
private getEventQueue;
|
|
9
16
|
/**
|
|
@@ -20,7 +27,6 @@ declare class EventQueue {
|
|
|
20
27
|
* Clears the queue from storage.
|
|
21
28
|
*/
|
|
22
29
|
clearQueue(): void;
|
|
23
|
-
private getSessionStorage;
|
|
24
30
|
}
|
|
25
31
|
/**
|
|
26
32
|
* This Storage interface represents the required storage functionality.
|
|
@@ -31,5 +37,3 @@ export interface Storage {
|
|
|
31
37
|
removeItem(key: string): void;
|
|
32
38
|
}
|
|
33
39
|
export type QueueEventPayload = Pick<CustomEventArguments, 'eventData' | 'extensionData' | 'type' | 'settings' | 'id'>;
|
|
34
|
-
export declare const eventQueue: EventQueue;
|
|
35
|
-
export {};
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.EventQueue = void 0;
|
|
4
4
|
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
|
|
5
5
|
const core_1 = require("@sitecore-cloudsdk/core");
|
|
6
6
|
const events_1 = require("../events");
|
|
7
|
-
const sendEvent_1 = require("../events/send-event/sendEvent");
|
|
8
7
|
class EventQueue {
|
|
9
|
-
constructor() {
|
|
8
|
+
constructor(storage, eventApiClient) {
|
|
9
|
+
this.storage = storage;
|
|
10
|
+
this.eventApiClient = eventApiClient;
|
|
10
11
|
/**
|
|
11
12
|
* Initialize the Event Storage
|
|
13
|
+
* @param storage - Interface that describes the storage functionality
|
|
14
|
+
* @param eventApiClient - The API client which sends events to EP
|
|
15
|
+
* @param infer - The instance of the infer class
|
|
12
16
|
*/
|
|
13
17
|
this.key = 'EventQueue';
|
|
14
18
|
}
|
|
15
19
|
/** Returns the stored array of data with type QueueEventPayload, or empty array if the given key does not exist. */
|
|
16
20
|
getEventQueue() {
|
|
17
|
-
const
|
|
18
|
-
|
|
21
|
+
const storedQueue = this.storage.getItem(this.key);
|
|
22
|
+
if (!storedQueue)
|
|
23
|
+
return [];
|
|
19
24
|
try {
|
|
20
25
|
const parsedQueueEvent = JSON.parse(storedQueue);
|
|
21
26
|
return Array.isArray(parsedQueueEvent) ? parsedQueueEvent : [];
|
|
@@ -30,16 +35,15 @@ class EventQueue {
|
|
|
30
35
|
* Performs validation by creating a new CustomEvent.
|
|
31
36
|
*/
|
|
32
37
|
enqueueEvent(queueEventPayload) {
|
|
33
|
-
const sessionStorage = this.getSessionStorage();
|
|
34
38
|
queueEventPayload.eventData.page = queueEventPayload.eventData.page ?? (0, core_1.pageName)();
|
|
35
39
|
queueEventPayload.eventData.language = queueEventPayload.eventData.language ?? (0, core_1.language)();
|
|
36
40
|
new events_1.CustomEvent({
|
|
37
|
-
|
|
41
|
+
eventApiClient: this.eventApiClient,
|
|
38
42
|
...queueEventPayload,
|
|
39
43
|
});
|
|
40
44
|
const eventQueue = this.getEventQueue();
|
|
41
45
|
eventQueue.push(queueEventPayload);
|
|
42
|
-
|
|
46
|
+
this.storage.setItem(this.key, JSON.stringify(eventQueue));
|
|
43
47
|
}
|
|
44
48
|
/**
|
|
45
49
|
* Iterates the queue, and sends sequently the custom events to Sitecore EP.
|
|
@@ -48,10 +52,10 @@ class EventQueue {
|
|
|
48
52
|
const eventQueue = this.getEventQueue();
|
|
49
53
|
for (const queueEventPayload of eventQueue) {
|
|
50
54
|
await new events_1.CustomEvent({
|
|
55
|
+
eventApiClient: this.eventApiClient,
|
|
51
56
|
eventData: queueEventPayload.eventData,
|
|
52
57
|
extensionData: queueEventPayload.extensionData,
|
|
53
58
|
id: queueEventPayload.id,
|
|
54
|
-
sendEvent: sendEvent_1.sendEvent,
|
|
55
59
|
settings: queueEventPayload.settings,
|
|
56
60
|
type: queueEventPayload.type,
|
|
57
61
|
}).send();
|
|
@@ -62,11 +66,7 @@ class EventQueue {
|
|
|
62
66
|
* Clears the queue from storage.
|
|
63
67
|
*/
|
|
64
68
|
clearQueue() {
|
|
65
|
-
|
|
66
|
-
sessionStorage.removeItem(this.key);
|
|
67
|
-
}
|
|
68
|
-
getSessionStorage() {
|
|
69
|
-
return sessionStorage;
|
|
69
|
+
this.storage.removeItem(this.key);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
exports.
|
|
72
|
+
exports.EventQueue = EventQueue;
|
|
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.processEventQueue = void 0;
|
|
4
4
|
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
|
|
5
5
|
const initializer_1 = require("../initializer/browser/initializer");
|
|
6
|
-
const eventStorage_1 = require("./eventStorage");
|
|
7
6
|
/**
|
|
8
7
|
* A function that sends all queue events to SitecoreCloud API.
|
|
9
8
|
* Clears the queue upon completion.
|
|
10
9
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
function processEventQueue() {
|
|
11
|
+
const { eventQueue } = (0, initializer_1.getDependencies)();
|
|
12
|
+
eventQueue.sendAllEvents();
|
|
14
13
|
}
|
|
15
14
|
exports.processEventQueue = processEventQueue;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { Settings } from '@sitecore-cloudsdk/core';
|
|
1
2
|
import { EventAttributesInput } from './common-interfaces';
|
|
2
3
|
export declare class BaseEvent {
|
|
3
4
|
private baseEventData;
|
|
5
|
+
protected settings: Settings;
|
|
4
6
|
private readonly browserId;
|
|
5
7
|
private readonly language;
|
|
6
8
|
page: string;
|
|
@@ -11,7 +13,7 @@ export declare class BaseEvent {
|
|
|
11
13
|
* @param id - The browser id
|
|
12
14
|
* @param infer - The source of methods to estimate language and page parameters
|
|
13
15
|
*/
|
|
14
|
-
constructor(baseEventData: BaseEventData, id: string);
|
|
16
|
+
constructor(baseEventData: BaseEventData, settings: Settings, id: string);
|
|
15
17
|
/**
|
|
16
18
|
* A function that returns the properties for sending events to Sitecore EP
|
|
17
19
|
* @returns an object that is required
|
|
@@ -11,8 +11,9 @@ class BaseEvent {
|
|
|
11
11
|
* @param id - The browser id
|
|
12
12
|
* @param infer - The source of methods to estimate language and page parameters
|
|
13
13
|
*/
|
|
14
|
-
constructor(baseEventData, id) {
|
|
14
|
+
constructor(baseEventData, settings, id) {
|
|
15
15
|
this.baseEventData = baseEventData;
|
|
16
|
+
this.settings = settings;
|
|
16
17
|
this.browserId = id;
|
|
17
18
|
this.language = this.baseEventData.language ?? (0, core_1.language)();
|
|
18
19
|
this.page = this.baseEventData.page ?? (0, core_1.pageName)();
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { BaseEvent } from '../base-event';
|
|
2
2
|
import { EventAttributesInput } from '../common-interfaces';
|
|
3
|
-
import {
|
|
3
|
+
import { EventApiClient } from '../../ep/EventApiClient';
|
|
4
4
|
import { EPResponse, Settings } from '@sitecore-cloudsdk/core';
|
|
5
5
|
import { BasicTypes, NestedObject } from '@sitecore-cloudsdk/utils';
|
|
6
6
|
export declare class CustomEvent extends BaseEvent {
|
|
7
7
|
customEventPayload: CustomEventPayload;
|
|
8
|
-
private
|
|
8
|
+
private eventApiClient;
|
|
9
9
|
private extensionData;
|
|
10
|
-
private settings;
|
|
11
10
|
/**
|
|
12
11
|
* A class that extends from {@link BaseEvent} and has all the required functionality to send a VIEW event
|
|
13
12
|
* @param args - Unified object containing the required properties
|
|
@@ -23,7 +22,7 @@ export declare class CustomEvent extends BaseEvent {
|
|
|
23
22
|
* Interface of the unified arguments object for custom event
|
|
24
23
|
*/
|
|
25
24
|
export interface CustomEventArguments {
|
|
26
|
-
|
|
25
|
+
eventApiClient: EventApiClient;
|
|
27
26
|
eventData: CustomEventData;
|
|
28
27
|
id: string;
|
|
29
28
|
extensionData?: NestedObject;
|
|
@@ -5,7 +5,6 @@ exports.CustomEvent = void 0;
|
|
|
5
5
|
const base_event_1 = require("../base-event");
|
|
6
6
|
const utils_1 = require("@sitecore-cloudsdk/utils");
|
|
7
7
|
const consts_1 = require("../consts");
|
|
8
|
-
const consts_2 = require("../../consts");
|
|
9
8
|
class CustomEvent extends base_event_1.BaseEvent {
|
|
10
9
|
/**
|
|
11
10
|
* A class that extends from {@link BaseEvent} and has all the required functionality to send a VIEW event
|
|
@@ -13,10 +12,9 @@ class CustomEvent extends base_event_1.BaseEvent {
|
|
|
13
12
|
*/
|
|
14
13
|
constructor(args) {
|
|
15
14
|
const { channel, currency, language, page, ...rest } = args.eventData;
|
|
16
|
-
super({ channel, currency, language, page }, args.id);
|
|
15
|
+
super({ channel, currency, language, page }, args.settings, args.id);
|
|
17
16
|
this.extensionData = {};
|
|
18
|
-
this.
|
|
19
|
-
this.settings = args.settings;
|
|
17
|
+
this.eventApiClient = args.eventApiClient;
|
|
20
18
|
this.customEventPayload = {
|
|
21
19
|
type: args.type,
|
|
22
20
|
...rest,
|
|
@@ -25,7 +23,7 @@ class CustomEvent extends base_event_1.BaseEvent {
|
|
|
25
23
|
this.extensionData = (0, utils_1.flattenObject)({ object: args.extensionData });
|
|
26
24
|
const numberOfExtensionDataProperties = Object.entries(this.extensionData).length;
|
|
27
25
|
if (numberOfExtensionDataProperties > consts_1.MAX_EXT_ATTRIBUTES)
|
|
28
|
-
throw new Error(
|
|
26
|
+
throw new Error(`[IV-0005] This event supports maximum ${consts_1.MAX_EXT_ATTRIBUTES} attributes. Reduce the number of attributes.`);
|
|
29
27
|
if (numberOfExtensionDataProperties > 0)
|
|
30
28
|
this.customEventPayload.ext = this.extensionData;
|
|
31
29
|
}
|
|
@@ -36,7 +34,7 @@ class CustomEvent extends base_event_1.BaseEvent {
|
|
|
36
34
|
async send() {
|
|
37
35
|
const baseAttr = this.mapBaseEventPayload();
|
|
38
36
|
const fetchBody = Object.assign({}, this.customEventPayload, baseAttr);
|
|
39
|
-
return await this.
|
|
37
|
+
return await this.eventApiClient.send(fetchBody);
|
|
40
38
|
}
|
|
41
39
|
}
|
|
42
40
|
exports.CustomEvent = CustomEvent;
|
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.event = void 0;
|
|
5
|
-
const core_1 = require("@sitecore-cloudsdk/core");
|
|
6
5
|
const custom_event_1 = require("./custom-event");
|
|
7
6
|
const initializer_1 = require("../../initializer/browser/initializer");
|
|
8
|
-
const sendEvent_1 = require("../send-event/sendEvent");
|
|
9
7
|
/**
|
|
10
8
|
* A function that sends an event to SitecoreCloud API with the specified type
|
|
11
9
|
* @param type - The required type of the event
|
|
@@ -14,15 +12,13 @@ const sendEvent_1 = require("../send-event/sendEvent");
|
|
|
14
12
|
* This object will be flattened and sent in the ext object of the payload
|
|
15
13
|
* @returns The response object that Sitecore EP returns
|
|
16
14
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const settings = (0, core_1.getSettings)();
|
|
20
|
-
const id = (0, core_1.getBrowserId)();
|
|
15
|
+
function event(type, eventData, extensionData) {
|
|
16
|
+
const { eventApiClient, id, settings } = (0, initializer_1.getDependencies)();
|
|
21
17
|
return new custom_event_1.CustomEvent({
|
|
18
|
+
eventApiClient,
|
|
22
19
|
eventData,
|
|
23
20
|
extensionData,
|
|
24
21
|
id,
|
|
25
|
-
sendEvent: sendEvent_1.sendEvent,
|
|
26
22
|
settings,
|
|
27
23
|
type,
|
|
28
24
|
}).send();
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.eventServer = void 0;
|
|
5
5
|
const core_1 = require("@sitecore-cloudsdk/core");
|
|
6
6
|
const custom_event_1 = require("./custom-event");
|
|
7
|
-
const
|
|
7
|
+
const initializer_1 = require("../../initializer/server/initializer");
|
|
8
8
|
/**
|
|
9
9
|
* A function that sends an event to SitecoreCloud API with the specified type
|
|
10
10
|
* @param type - The required type of the event
|
|
@@ -14,14 +14,14 @@ const sendEvent_1 = require("../send-event/sendEvent");
|
|
|
14
14
|
* @returns The response object that Sitecore EP returns
|
|
15
15
|
*/
|
|
16
16
|
function eventServer(type, eventData, request, extensionData) {
|
|
17
|
-
const settings = (0,
|
|
17
|
+
const { eventApiClient, settings } = (0, initializer_1.getServerDependencies)();
|
|
18
18
|
const id = (0, core_1.getBrowserIdFromRequest)(request, settings.cookieSettings.cookieName);
|
|
19
19
|
return new custom_event_1.CustomEvent({
|
|
20
|
+
eventApiClient,
|
|
20
21
|
eventData,
|
|
21
22
|
extensionData,
|
|
22
23
|
id,
|
|
23
|
-
|
|
24
|
-
settings,
|
|
24
|
+
settings: settings,
|
|
25
25
|
type,
|
|
26
26
|
}).send();
|
|
27
27
|
}
|
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.form = void 0;
|
|
5
|
-
const core_1 = require("@sitecore-cloudsdk/core");
|
|
6
|
-
const custom_event_1 = require("./custom-event");
|
|
7
|
-
const sendEvent_1 = require("../send-event/sendEvent");
|
|
8
5
|
const initializer_1 = require("../../initializer/browser/initializer");
|
|
6
|
+
const custom_event_1 = require("./custom-event");
|
|
9
7
|
/**
|
|
10
8
|
* A function that sends a form event to SitecoreCloud API
|
|
11
9
|
* @param formId - The required form ID string
|
|
@@ -13,18 +11,16 @@ const initializer_1 = require("../../initializer/browser/initializer");
|
|
|
13
11
|
* settings object, you must specify it here
|
|
14
12
|
* @returns The response object that Sitecore EP returns or null
|
|
15
13
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const settings = (0, core_1.getSettings)();
|
|
19
|
-
const id = (0, core_1.getBrowserId)();
|
|
14
|
+
function form(formId, interactionType) {
|
|
15
|
+
const { eventApiClient, id, settings } = (0, initializer_1.getDependencies)();
|
|
20
16
|
const formEvent = new custom_event_1.CustomEvent({
|
|
17
|
+
eventApiClient,
|
|
21
18
|
eventData: {},
|
|
22
19
|
extensionData: {
|
|
23
20
|
formId,
|
|
24
21
|
interactionType: interactionType.toUpperCase(),
|
|
25
22
|
},
|
|
26
23
|
id,
|
|
27
|
-
sendEvent: sendEvent_1.sendEvent,
|
|
28
24
|
settings,
|
|
29
25
|
type: 'FORM',
|
|
30
26
|
});
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { BaseEvent } from '../base-event';
|
|
2
2
|
import { ExtensionData, EventAttributesInput } from '../common-interfaces';
|
|
3
|
+
import { EventApiClient } from '../../ep/EventApiClient';
|
|
3
4
|
import { FlattenedObject } from '@sitecore-cloudsdk/utils';
|
|
4
5
|
import { EPResponse, Infer, Settings } from '@sitecore-cloudsdk/core';
|
|
5
|
-
import { SendEvent } from '../send-event/sendEvent';
|
|
6
6
|
export declare class IdentityEvent extends BaseEvent {
|
|
7
7
|
private eventData;
|
|
8
|
-
private
|
|
8
|
+
private eventApiClient;
|
|
9
9
|
private extensionData;
|
|
10
10
|
private numberOfExtensionDataProperties;
|
|
11
|
-
private settings;
|
|
12
11
|
/**
|
|
13
12
|
* A class that extends from {@link BaseEvent} and has all the required functionality to send a VIEW event
|
|
14
13
|
* @param args - Unified object containing the required properties
|
|
@@ -90,7 +89,7 @@ export interface IdentityEventPayload {
|
|
|
90
89
|
* Interface of the unified arguments object for identity event
|
|
91
90
|
*/
|
|
92
91
|
export interface IdentityEventArguments {
|
|
93
|
-
|
|
92
|
+
eventApiClient: EventApiClient;
|
|
94
93
|
eventData: IdentityEventAttributesInput;
|
|
95
94
|
extensionData?: ExtensionData;
|
|
96
95
|
id: string;
|
|
@@ -5,7 +5,6 @@ exports.IdentityEvent = void 0;
|
|
|
5
5
|
const base_event_1 = require("../base-event");
|
|
6
6
|
const consts_1 = require("../consts");
|
|
7
7
|
const utils_1 = require("@sitecore-cloudsdk/utils");
|
|
8
|
-
const consts_2 = require("../../consts");
|
|
9
8
|
class IdentityEvent extends base_event_1.BaseEvent {
|
|
10
9
|
/**
|
|
11
10
|
* A class that extends from {@link BaseEvent} and has all the required functionality to send a VIEW event
|
|
@@ -13,18 +12,17 @@ class IdentityEvent extends base_event_1.BaseEvent {
|
|
|
13
12
|
*/
|
|
14
13
|
constructor(args) {
|
|
15
14
|
const { channel, currency, language, page } = args.eventData;
|
|
16
|
-
super({ channel, currency, language, page }, args.id);
|
|
15
|
+
super({ channel, currency, language, page }, args.settings, args.id);
|
|
17
16
|
this.extensionData = {};
|
|
18
17
|
this.numberOfExtensionDataProperties = 0;
|
|
19
18
|
this.validateAttributes(args.eventData);
|
|
20
19
|
this.eventData = args.eventData;
|
|
21
|
-
this.
|
|
22
|
-
this.settings = args.settings;
|
|
20
|
+
this.eventApiClient = args.eventApiClient;
|
|
23
21
|
if (args.extensionData)
|
|
24
22
|
this.extensionData = (0, utils_1.flattenObject)({ object: args.extensionData });
|
|
25
23
|
this.numberOfExtensionDataProperties = Object.entries(this.extensionData).length;
|
|
26
24
|
if (this.numberOfExtensionDataProperties > consts_1.MAX_EXT_ATTRIBUTES)
|
|
27
|
-
throw new Error(
|
|
25
|
+
throw new Error(`[IV-0005] This event supports maximum ${consts_1.MAX_EXT_ATTRIBUTES} attributes. Reduce the number of attributes.`);
|
|
28
26
|
}
|
|
29
27
|
/**
|
|
30
28
|
* Function that validates the identifiers object, email and date attributes for CDN users
|
|
@@ -32,15 +30,15 @@ class IdentityEvent extends base_event_1.BaseEvent {
|
|
|
32
30
|
*/
|
|
33
31
|
validateAttributes(eventData) {
|
|
34
32
|
if (eventData.identifiers.length === 0)
|
|
35
|
-
throw new Error(
|
|
33
|
+
throw new Error(`[MV-0003] "identifiers" is required.`);
|
|
36
34
|
if (eventData.dob !== undefined && !(0, utils_1.isShortISODateString)(eventData.dob))
|
|
37
|
-
throw new Error(
|
|
35
|
+
throw new Error(`[IV-0002] Incorrect value for "dob". Format the value according to ISO 8601.`);
|
|
38
36
|
eventData.identifiers.forEach((identifier) => {
|
|
39
37
|
if (identifier.expiryDate && !(0, utils_1.isShortISODateString)(identifier.expiryDate))
|
|
40
|
-
throw new Error(
|
|
38
|
+
throw new Error(`[IV-0004] Incorrect value for "expiryDate". Format the value according to ISO 8601.`);
|
|
41
39
|
});
|
|
42
40
|
if (eventData.email && !(0, utils_1.isValidEmail)(eventData.email))
|
|
43
|
-
throw new Error(
|
|
41
|
+
throw new Error(`[IV-0003] Incorrect value for "email". Set the value to a valid email address.`);
|
|
44
42
|
}
|
|
45
43
|
/**
|
|
46
44
|
* A function that maps the identity event input data with the payload sent to the API
|
|
@@ -84,7 +82,7 @@ class IdentityEvent extends base_event_1.BaseEvent {
|
|
|
84
82
|
const baseAttr = this.mapBaseEventPayload();
|
|
85
83
|
const eventAttrs = this.mapAttributes();
|
|
86
84
|
const fetchBody = Object.assign({}, eventAttrs, baseAttr);
|
|
87
|
-
return await this.
|
|
85
|
+
return await this.eventApiClient.send(fetchBody);
|
|
88
86
|
}
|
|
89
87
|
}
|
|
90
88
|
exports.IdentityEvent = IdentityEvent;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.identity = void 0;
|
|
4
|
-
const core_1 = require("@sitecore-cloudsdk/core");
|
|
5
|
-
const identity_event_1 = require("./identity-event");
|
|
6
5
|
const initializer_1 = require("../../initializer/browser/initializer");
|
|
7
|
-
const
|
|
6
|
+
const identity_event_1 = require("./identity-event");
|
|
8
7
|
/**
|
|
9
8
|
* A function that sends an IDENTITY event to SitecoreCloud API
|
|
10
9
|
* @param eventData - The required/optional attributes in order to be send to SitecoreCloud API
|
|
@@ -12,15 +11,13 @@ const sendEvent_1 = require("../send-event/sendEvent");
|
|
|
12
11
|
* This object will be flattened and sent in the ext object of the payload
|
|
13
12
|
* @returns The response object that Sitecore EP returns
|
|
14
13
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const settings = (0, core_1.getSettings)();
|
|
18
|
-
const id = (0, core_1.getBrowserId)();
|
|
14
|
+
function identity(eventData, extensionData) {
|
|
15
|
+
const { eventApiClient, id, settings } = (0, initializer_1.getDependencies)();
|
|
19
16
|
return new identity_event_1.IdentityEvent({
|
|
17
|
+
eventApiClient,
|
|
20
18
|
eventData,
|
|
21
19
|
extensionData,
|
|
22
20
|
id,
|
|
23
|
-
sendEvent: sendEvent_1.sendEvent,
|
|
24
21
|
settings,
|
|
25
22
|
}).send();
|
|
26
23
|
}
|