@surfside/surfside-events 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2021 Michael Blanche, Surfside Solutions Inc, Snowplow Analytics Ltd, 2010 Anthon Pang
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package/README.md ADDED
@@ -0,0 +1,45 @@
1
+ # Surfside Digital Analytics
2
+
3
+ ### Setup repository
4
+
5
+ ```bash
6
+ clone repo
7
+ npm install -g @microsoft/rush
8
+ rush update
9
+ ```
10
+
11
+ ## Package Installation
12
+
13
+ With npm:
14
+
15
+ ```bash
16
+ npm install @surfside/surfside-events
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ Use the available functions from this package to track to all trackers which have been initialized with this plugin:
22
+
23
+ ```js
24
+ import { addProduct, addPromo, setAction } from '@surfside/browser-plugin-surfside';
25
+
26
+ addProduct({
27
+ id: 'P12345',
28
+ name: 'Blue T-Shirt',
29
+ list: 'Search Results',
30
+ brand: 'The T-Shirt Company',
31
+ category: 'Apparel/T-Shirts',
32
+ variant: 'Black',
33
+ quantity: 1,
34
+ });
35
+
36
+ addPromo({
37
+ id: 'PROMO_1234',
38
+ name: 'Summer Sale',
39
+ creative: 'summer_banner2',
40
+ position: 'banner_slot1',
41
+ });
42
+
43
+ setAction({ action: 'purchase' });
44
+
45
+ ```
@@ -0,0 +1,245 @@
1
+ import { BrowserPlugin } from '@surfside/browser-core';
2
+ import { CommonEventProperties } from '@surfside/digital-core';
3
+ declare function SurfsideCommercePlugin(): BrowserPlugin;
4
+ /**
5
+ * A Commerce Action
6
+ * Used when tracking an Surfside Commerce Action with all stored Commerce contexts
7
+ */
8
+ interface commerceAction {
9
+ /** Actions specify how to interpret product and promotion data */
10
+ action?: string;
11
+ }
12
+ /**
13
+ * Track a Commerce Action with all stored Commerce contexts
14
+ *
15
+ * @param event
16
+ * @param trackers
17
+ */
18
+ declare function setCommerceAction(event?: commerceAction & CommonEventProperties, trackers?: Array<string>): void;
19
+ /**
20
+ * The Commerce Transaction Context
21
+ * Represents information about an ecommerce related action that has taken place.
22
+ */
23
+ interface commerceTransactionContext {
24
+ /** The transaction id */
25
+ id?: string;
26
+ /** The store of affiliation from which this transaction occured */
27
+ affiliation?: string;
28
+ /** Specifies the total revenue or grand total associated with the transaction */
29
+ revenue?: string;
30
+ /** The total tax associated with the transaction. */
31
+ tax?: number;
32
+ /** The shipping cost associated with the transaction. */
33
+ shipping?: number;
34
+ /** The transaction coupon redeemed with the transaction. */
35
+ coupon?: string;
36
+ /** The list that the associated products belong to. */
37
+ list?: string;
38
+ /** A number representing a step in the checkout process. Optional on `checkout` actions. */
39
+ step?: number;
40
+ /** Additional field for checkout and checkout_option actions that can describe option information on the checkout page, like selected payment method. */
41
+ option?: string;
42
+ /** The currency of the transactoin */
43
+ currency?: string;
44
+ }
45
+ /**
46
+ * Adds a Commerce Transaction Context to an Action
47
+ *
48
+ * @param context - The context to be stored
49
+ * @param trackers - The tracker identifiers which the context will be stored against
50
+ */
51
+ declare function addTransaction(context?: commerceTransactionContext, trackers?: Array<string>): void;
52
+ /**
53
+ * A Commerce Impression Context
54
+ */
55
+ interface commerceImpressionContext {
56
+ /** The product ID or SKU */
57
+ id?: string;
58
+ /** The name of the product */
59
+ name?: string;
60
+ /** The list or collection to which the product belongs */
61
+ list?: string;
62
+ /** The brand associated with the product */
63
+ brand?: string;
64
+ /** The category to which the product belongs */
65
+ category?: string;
66
+ /** The variant of the product */
67
+ variant?: string;
68
+ /** The product's position in a list or collection */
69
+ position?: number;
70
+ /** The price of a product */
71
+ price?: string;
72
+ /** The currency of a product */
73
+ currency?: string;
74
+ }
75
+ /**
76
+ * Adds a Commerce Impression Context
77
+ *
78
+ * @param context - The context to be stored
79
+ * @param trackers - The tracker identifiers which the context will be stored against
80
+ */
81
+ declare function addImpression(context?: commerceImpressionContext, trackers?: Array<string>): void;
82
+ /**
83
+ * A Commerce Product Context
84
+ */
85
+ interface commerceProductContext {
86
+ /** The product ID or SKU */
87
+ id?: string;
88
+ /** The name of the product */
89
+ name?: string;
90
+ /** The list or collection to which the product belongs */
91
+ list?: string;
92
+ /** The brand associated with the product */
93
+ brand?: string;
94
+ /** The category to which the product belongs */
95
+ category?: string;
96
+ /** The variant of the product */
97
+ variant?: string;
98
+ /** The price of a product */
99
+ price?: number;
100
+ /** The quantity of a product */
101
+ quantity?: number;
102
+ /** The coupon code associated with a product */
103
+ coupon?: string;
104
+ /** The product's position in a list or collection */
105
+ position?: number;
106
+ /** The currency of the product */
107
+ currency?: string;
108
+ }
109
+ /**
110
+ * Adds a Commerce Product Context
111
+ *
112
+ * @param context - The context to be stored
113
+ * @param trackers - The tracker identifiers which the context will be stored against
114
+ */
115
+ declare function addProduct(context?: commerceProductContext, trackers?: Array<string>): void;
116
+ /**
117
+ * A Commerce Promotion Context
118
+ */
119
+ interface commercePromoContext {
120
+ /** The promotion ID */
121
+ id?: string;
122
+ /** The name of the promotion */
123
+ name?: string;
124
+ /** The creative associated with the promotion */
125
+ creative?: string;
126
+ /** The position of the creative */
127
+ position?: string;
128
+ /** The currency of the product */
129
+ currency?: string;
130
+ }
131
+ /**
132
+ * Adds a Commerce Promotion Context
133
+ *
134
+ * @param context - The context to be stored
135
+ * @param trackers - The tracker identifiers which the context will be stored against
136
+ */
137
+ declare function addPromotion(context?: commercePromoContext, trackers?: Array<string>): void;
138
+ /** SURFSIDE CORE CONTEXTS **/
139
+ /**
140
+ * A Surfside Source Context
141
+ */
142
+ interface sourceContext {
143
+ /** The Account ID */
144
+ accountId?: string;
145
+ /** The Source ID */
146
+ sourceId?: string;
147
+ }
148
+ /**
149
+ * Adds a Surfside Source Context
150
+ *
151
+ * @param context - The context to be stored
152
+ * @param trackers - The tracker identifiers which the context will be stored against
153
+ */
154
+ declare function source(context?: sourceContext, trackers?: Array<string>): void;
155
+ /**
156
+ * A Surfside Segment Context
157
+ */
158
+ interface segmentContext {
159
+ /** The Segment ID */
160
+ segmentId?: string;
161
+ /** The Segment Value */
162
+ segmentVal?: string;
163
+ }
164
+ /**
165
+ * Adds a Surfside Segment Context
166
+ *
167
+ * @param context - The context to be stored
168
+ * @param trackers - The tracker identifiers which the context will be stored against
169
+ */
170
+ declare function segment(context?: segmentContext, trackers?: Array<string>): void;
171
+ /**
172
+ * A Surfside User Context
173
+ */
174
+ interface userContext {
175
+ /** The address of the user */
176
+ address?: string;
177
+ /** The age of the user */
178
+ age?: string;
179
+ /** The company of the user */
180
+ company?: string;
181
+ /** The created timstamp of the user */
182
+ createdAt?: string;
183
+ /** The date of birth of the user */
184
+ dateOfBirth?: string;
185
+ /** The email of the user */
186
+ email?: string;
187
+ /** The first name of the user */
188
+ firstName?: string;
189
+ /** The gender of the user */
190
+ gender?: string;
191
+ /** The user ID of the user */
192
+ userId?: string;
193
+ /** The last name of the user */
194
+ lastName?: string;
195
+ }
196
+ /**
197
+ * Adds a Surfside User Context
198
+ *
199
+ * @param context - The context to be stored
200
+ * @param trackers - The tracker identifiers which the context will be stored against
201
+ */
202
+ declare function setUser(context?: userContext, trackers?: Array<string>): void;
203
+ /**
204
+ * A Surfside User Context
205
+ */
206
+ interface identifyUserContext {
207
+ /** The ID of the user */
208
+ id?: string;
209
+ /** The address of the user */
210
+ address?: string;
211
+ /** The age of the user */
212
+ age?: string;
213
+ /** The company of the user */
214
+ company?: string;
215
+ /** The created timstamp of the user */
216
+ createdAt?: string;
217
+ /** The date of birth of the user */
218
+ dateOfBirth?: string;
219
+ /** The email of the user */
220
+ email?: string;
221
+ /** The first name of the user */
222
+ firstName?: string;
223
+ /** The gender of the user */
224
+ gender?: string;
225
+ /** The user ID of the user */
226
+ userId?: string;
227
+ /** The last name of the user */
228
+ lastName?: string;
229
+ /** The name of the user */
230
+ name?: string;
231
+ /** The phone of the user */
232
+ phone?: string;
233
+ /** The title of the user */
234
+ title?: string;
235
+ /** The username of the user */
236
+ username?: string;
237
+ }
238
+ /**
239
+ * Adds a Surfside Context
240
+ *
241
+ * @param context - The context to be stored
242
+ * @param trackers - The tracker identifiers which the context will be stored against
243
+ */
244
+ declare function identifyUser(context?: identifyUserContext, trackers?: Array<string>): void;
245
+ export { SurfsideCommercePlugin, commerceAction, setCommerceAction, commerceTransactionContext, addTransaction, commerceImpressionContext, addImpression, commerceProductContext, addProduct, commercePromoContext, addPromotion, sourceContext, source, segmentContext, segment, userContext, setUser, identifyUserContext, identifyUser };
@@ -0,0 +1,298 @@
1
+ /*!
2
+ * Surfside Digital Analytics v0.0.1 (https://surfside.io)
3
+ * Copyright 2022 Surfside Solutions Inc, Snowplow Analytics Ltd, 2010 Anthon Pang
4
+ */
5
+
6
+ import { dispatchToTrackersInCollection, parseAndValidateFloat, parseAndValidateInt } from '@surfside/browser-core';
7
+ import { buildSelfDescribingEvent } from '@surfside/digital-core';
8
+
9
+ /*
10
+ * Copyright (c) 2022 Surfside Solutions Inc, Snowplow Analytics Ltd, 2010 Anthon Pang
11
+ * All rights reserved.
12
+ *
13
+ * Redistribution and use in source and binary forms, with or without
14
+ * modification, are permitted provided that the following conditions are met:
15
+ *
16
+ * 1. Redistributions of source code must retain the above copyright notice, this
17
+ * list of conditions and the following disclaimer.
18
+ *
19
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
20
+ * this list of conditions and the following disclaimer in the documentation
21
+ * and/or other materials provided with the distribution.
22
+ *
23
+ * 3. Neither the name of the copyright holder nor the names of its
24
+ * contributors may be used to endorse or promote products derived from
25
+ * this software without specific prior written permission.
26
+ *
27
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
31
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
+ */
38
+ var _trackers = {};
39
+ var _context = {};
40
+ function SurfsideCommercePlugin() {
41
+ return {
42
+ activateBrowserPlugin: function (tracker) {
43
+ _trackers[tracker.id] = tracker;
44
+ _context[tracker.id] = [];
45
+ }
46
+ };
47
+ }
48
+ /**
49
+ * Track a Commerce Action with all stored Commerce contexts
50
+ *
51
+ * @param event
52
+ * @param trackers
53
+ */
54
+ function setCommerceAction(event, trackers) {
55
+ if (event === void 0) { event = {}; }
56
+ if (trackers === void 0) { trackers = Object.keys(_trackers); }
57
+ dispatchToTrackersInCollection(trackers, _trackers, function (t) {
58
+ var combinedContexts = _context[t.id].concat(event.context || []);
59
+ _context[t.id].length = 0;
60
+ t.core.track(buildSelfDescribingEvent({
61
+ event: {
62
+ schema: 'iglu:io.surfside.commerce/action/jsonschema/1-0-0',
63
+ data: {
64
+ action: event
65
+ }
66
+ }
67
+ }), combinedContexts, event.timestamp);
68
+ });
69
+ }
70
+ /**
71
+ * Adds a Commerce Transaction Context to an Action
72
+ *
73
+ * @param context - The context to be stored
74
+ * @param trackers - The tracker identifiers which the context will be stored against
75
+ */
76
+ function addTransaction(context, trackers) {
77
+ if (context === void 0) { context = {}; }
78
+ if (trackers === void 0) { trackers = Object.keys(_trackers); }
79
+ var id = context.id, affiliation = context.affiliation, revenue = context.revenue, tax = context.tax, shipping = context.shipping, coupon = context.coupon, list = context.list, step = context.step, option = context.option, currency = context.currency;
80
+ trackers.forEach(function (trackerId) {
81
+ if (_context[trackerId]) {
82
+ _context[trackerId].push({
83
+ schema: 'iglu:io.surfside.commerce/transaction/jsonschema/1-0-0',
84
+ data: {
85
+ id: id,
86
+ affiliation: affiliation,
87
+ revenue: parseAndValidateFloat(revenue),
88
+ tax: parseAndValidateFloat(tax),
89
+ shipping: parseAndValidateFloat(shipping),
90
+ coupon: coupon,
91
+ list: list,
92
+ step: parseAndValidateInt(step),
93
+ option: option,
94
+ currency: currency
95
+ }
96
+ });
97
+ }
98
+ });
99
+ }
100
+ /**
101
+ * Adds a Commerce Impression Context
102
+ *
103
+ * @param context - The context to be stored
104
+ * @param trackers - The tracker identifiers which the context will be stored against
105
+ */
106
+ function addImpression(context, trackers) {
107
+ if (context === void 0) { context = {}; }
108
+ if (trackers === void 0) { trackers = Object.keys(_trackers); }
109
+ var id = context.id, name = context.name, list = context.list, brand = context.brand, category = context.category, variant = context.variant, position = context.position, price = context.price, currency = context.currency;
110
+ trackers.forEach(function (trackerId) {
111
+ if (_context[trackerId]) {
112
+ _context[trackerId].push({
113
+ schema: 'iglu:io.surfside.commerce/impression/jsonschema/1-0-0',
114
+ data: {
115
+ id: id,
116
+ name: name,
117
+ list: list,
118
+ brand: brand,
119
+ category: category,
120
+ variant: variant,
121
+ position: parseAndValidateInt(position),
122
+ price: parseAndValidateFloat(price),
123
+ currency: currency
124
+ }
125
+ });
126
+ }
127
+ });
128
+ }
129
+ /**
130
+ * Adds a Commerce Product Context
131
+ *
132
+ * @param context - The context to be stored
133
+ * @param trackers - The tracker identifiers which the context will be stored against
134
+ */
135
+ function addProduct(context, trackers) {
136
+ if (context === void 0) { context = {}; }
137
+ if (trackers === void 0) { trackers = Object.keys(_trackers); }
138
+ var id = context.id, name = context.name, list = context.list, brand = context.brand, category = context.category, variant = context.variant, price = context.price, quantity = context.quantity, coupon = context.coupon, position = context.position, currency = context.currency;
139
+ trackers.forEach(function (trackerId) {
140
+ if (_context[trackerId]) {
141
+ _context[trackerId].push({
142
+ schema: 'iglu:io.surfside.commerce/product/jsonschema/1-0-0',
143
+ data: {
144
+ id: id,
145
+ name: name,
146
+ list: list,
147
+ brand: brand,
148
+ category: category,
149
+ variant: variant,
150
+ price: parseAndValidateFloat(price),
151
+ quantity: parseAndValidateInt(quantity),
152
+ coupon: coupon,
153
+ position: parseAndValidateInt(position),
154
+ currency: currency
155
+ }
156
+ });
157
+ }
158
+ });
159
+ }
160
+ /**
161
+ * Adds a Commerce Promotion Context
162
+ *
163
+ * @param context - The context to be stored
164
+ * @param trackers - The tracker identifiers which the context will be stored against
165
+ */
166
+ function addPromotion(context, trackers) {
167
+ if (context === void 0) { context = {}; }
168
+ if (trackers === void 0) { trackers = Object.keys(_trackers); }
169
+ var id = context.id, name = context.name, creative = context.creative, position = context.position, currency = context.currency;
170
+ trackers.forEach(function (trackerId) {
171
+ if (_context[trackerId]) {
172
+ _context[trackerId].push({
173
+ schema: 'iglu:io.surfside.commerce/promotion/jsonschema/1-0-0',
174
+ data: {
175
+ id: id,
176
+ name: name,
177
+ creative: creative,
178
+ position: position,
179
+ currency: currency
180
+ }
181
+ });
182
+ }
183
+ });
184
+ }
185
+ /**
186
+ * Adds a Surfside Source Context
187
+ *
188
+ * @param context - The context to be stored
189
+ * @param trackers - The tracker identifiers which the context will be stored against
190
+ */
191
+ function source(context, trackers) {
192
+ if (context === void 0) { context = {}; }
193
+ if (trackers === void 0) { trackers = Object.keys(_trackers); }
194
+ var accountId = context.accountId, sourceId = context.sourceId;
195
+ dispatchToTrackersInCollection(trackers, _trackers, function (t) {
196
+ _context[t.id].length = 0;
197
+ t.core.addGlobalContexts([
198
+ {
199
+ schema: 'iglu:io.surfside/context/jsonschema/1-0-0',
200
+ data: {
201
+ accountId: accountId,
202
+ sourceId: sourceId
203
+ }
204
+ },
205
+ ]);
206
+ });
207
+ }
208
+ /**
209
+ * Adds a Surfside Segment Context
210
+ *
211
+ * @param context - The context to be stored
212
+ * @param trackers - The tracker identifiers which the context will be stored against
213
+ */
214
+ function segment(context, trackers) {
215
+ if (context === void 0) { context = {}; }
216
+ if (trackers === void 0) { trackers = Object.keys(_trackers); }
217
+ var segmentId = context.segmentId, segmentVal = context.segmentVal;
218
+ dispatchToTrackersInCollection(trackers, _trackers, function (t) {
219
+ _context[t.id].length = 0;
220
+ t.core.addGlobalContexts([
221
+ {
222
+ schema: 'iglu:io.surfside/segment/jsonschema/1-0-0',
223
+ data: {
224
+ segmentId: segmentId,
225
+ segmentVal: segmentVal
226
+ }
227
+ },
228
+ ]);
229
+ });
230
+ }
231
+ /**
232
+ * Adds a Surfside User Context
233
+ *
234
+ * @param context - The context to be stored
235
+ * @param trackers - The tracker identifiers which the context will be stored against
236
+ */
237
+ function setUser(context, trackers) {
238
+ if (context === void 0) { context = {}; }
239
+ if (trackers === void 0) { trackers = Object.keys(_trackers); }
240
+ var address = context.address, age = context.age, company = context.company, createdAt = context.createdAt, dateOfBirth = context.dateOfBirth, email = context.email, firstName = context.firstName, gender = context.gender, userId = context.userId, lastName = context.lastName;
241
+ trackers.forEach(function (trackerId) {
242
+ if (_context[trackerId]) {
243
+ _context[trackerId].push({
244
+ schema: 'iglu:io.surfside.identity/user/jsonschema/1-0-0',
245
+ data: {
246
+ address: address,
247
+ age: age,
248
+ company: company,
249
+ createdAt: createdAt,
250
+ dateOfBirth: dateOfBirth,
251
+ email: email,
252
+ firstName: firstName,
253
+ gender: gender,
254
+ userId: userId,
255
+ lastName: lastName
256
+ }
257
+ });
258
+ }
259
+ });
260
+ }
261
+ /**
262
+ * Adds a Surfside Context
263
+ *
264
+ * @param context - The context to be stored
265
+ * @param trackers - The tracker identifiers which the context will be stored against
266
+ */
267
+ function identifyUser(context, trackers) {
268
+ if (context === void 0) { context = {}; }
269
+ if (trackers === void 0) { trackers = Object.keys(_trackers); }
270
+ var id = context.id, address = context.address, age = context.age, company = context.company, createdAt = context.createdAt, dateOfBirth = context.dateOfBirth, email = context.email, firstName = context.firstName, gender = context.gender, userId = context.userId, lastName = context.lastName, name = context.name, phone = context.phone, title = context.title, username = context.username;
271
+ trackers.forEach(function (trackerId) {
272
+ if (_context[trackerId]) {
273
+ _context[trackerId].push({
274
+ schema: 'iglu:io.surfside.identity/user/jsonschema/1-0-0',
275
+ data: {
276
+ id: id,
277
+ address: address,
278
+ age: age,
279
+ company: company,
280
+ createdAt: createdAt,
281
+ dateOfBirth: dateOfBirth,
282
+ email: email,
283
+ firstName: firstName,
284
+ gender: gender,
285
+ userId: userId,
286
+ lastName: lastName,
287
+ name: name,
288
+ phone: phone,
289
+ title: title,
290
+ username: username
291
+ }
292
+ });
293
+ }
294
+ });
295
+ }
296
+
297
+ export { SurfsideCommercePlugin, addImpression, addProduct, addPromotion, addTransaction, identifyUser, segment, setCommerceAction, setUser, source };
298
+ //# sourceMappingURL=index.module.js.map