@surfside/ads-core-web 0.7.0 → 0.8.0-38252e2e.0
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/lib/cjs/BuildInfo.js +2 -2
- package/lib/cjs/Init.js +4 -2
- package/lib/cjs/Init.js.map +1 -1
- package/lib/cjs/helpers/UserId.js +39 -1
- package/lib/cjs/helpers/UserId.js.map +1 -1
- package/lib/esm/BuildInfo.js +2 -2
- package/lib/esm/Init.js +6 -4
- package/lib/esm/Init.js.map +1 -1
- package/lib/esm/helpers/UserId.js +36 -1
- package/lib/esm/helpers/UserId.js.map +1 -1
- package/lib/types/helpers/UserId.d.ts +8 -1
- package/package.json +4 -4
package/lib/cjs/BuildInfo.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VersionInfo = void 0;
|
|
4
4
|
exports.VersionInfo = {
|
|
5
5
|
'buildBranch': 'HEAD',
|
|
6
|
-
'buildHash': '
|
|
7
|
-
'buildVer': '0.
|
|
6
|
+
'buildHash': '38252e2',
|
|
7
|
+
'buildVer': '0.8.0-eb18f2a.0'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=BuildInfo.js.map
|
package/lib/cjs/Init.js
CHANGED
|
@@ -72,20 +72,22 @@ const LoadSurfAdsWebSimple = async (accountId, siteId, channelId, locationId, us
|
|
|
72
72
|
return browserInfo;
|
|
73
73
|
}
|
|
74
74
|
const { windowInfo, navigator, isMobile, screen } = browserInfo.value;
|
|
75
|
+
const session = (0, helpers_1.GetSnowplowSession)(logger);
|
|
75
76
|
return await (0, exports.LoadSurfAdsWeb)({
|
|
76
77
|
logger,
|
|
77
78
|
accountId,
|
|
78
79
|
channelId,
|
|
79
80
|
siteId,
|
|
80
81
|
locationId,
|
|
81
|
-
userId,
|
|
82
|
+
userId: userId ?? (0, ads_core_client_1.GetValue)(session)?.userId,
|
|
82
83
|
windowInfo,
|
|
83
84
|
navigator,
|
|
84
85
|
mobile: isMobile,
|
|
85
86
|
screen,
|
|
86
87
|
ip: undefined,
|
|
87
88
|
overrides,
|
|
88
|
-
telemetry
|
|
89
|
+
telemetry,
|
|
90
|
+
session: (0, ads_core_client_1.GetValue)(session)
|
|
89
91
|
});
|
|
90
92
|
};
|
|
91
93
|
exports.LoadSurfAdsWebSimple = LoadSurfAdsWebSimple;
|
package/lib/cjs/Init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Init.js","sourceRoot":"../@surfside-ads-core-web/","sources":["Init.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"Init.js","sourceRoot":"../@surfside-ads-core-web/","sources":["Init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GetSurfUserIdCookie = void 0;
|
|
3
|
+
exports.MalformedCookieError = exports.NoCookieError = exports.GetSnowplowSession = exports.GetSurfUserIdCookie = void 0;
|
|
4
4
|
const ads_core_client_1 = require("@surfside/ads-core-client");
|
|
5
5
|
const COOKIE_PREFIX = 'surfid.';
|
|
6
6
|
const SURFID_REGEX = /surfid.(?<site_hash>[a-z0-9]+)=(?<domain_userid>[^.]+).*/ig;
|
|
@@ -20,4 +20,42 @@ const GetSurfUserIdCookie = async (logger) => {
|
|
|
20
20
|
return userId;
|
|
21
21
|
};
|
|
22
22
|
exports.GetSurfUserIdCookie = GetSurfUserIdCookie;
|
|
23
|
+
const GetSnowplowSession = (logger) => {
|
|
24
|
+
if (typeof globalThis.document === 'undefined') {
|
|
25
|
+
return (0, ads_core_client_1.Err)(new ads_core_client_1.NotABrowserError());
|
|
26
|
+
}
|
|
27
|
+
const log = (0, ads_core_client_1.Ctx)(logger)?.with('GetSnowplowSession');
|
|
28
|
+
log?.info('Getting snowplow session for script-set cookie (surfid.{hash})');
|
|
29
|
+
const cookieValue = globalThis.document.cookie
|
|
30
|
+
.split(';')
|
|
31
|
+
.map(c => c.trim())
|
|
32
|
+
.find(c => c.startsWith(COOKIE_PREFIX))
|
|
33
|
+
?.split('=')[1];
|
|
34
|
+
if (cookieValue === undefined) {
|
|
35
|
+
return (0, ads_core_client_1.Err)(new NoCookieError);
|
|
36
|
+
}
|
|
37
|
+
const cookieParts = cookieValue.split('.');
|
|
38
|
+
if (cookieParts.length < 6) {
|
|
39
|
+
return (0, ads_core_client_1.Err)(new MalformedCookieError);
|
|
40
|
+
}
|
|
41
|
+
const [domainUserId, , domainSessionIdx, , , domainSessionId] = cookieParts;
|
|
42
|
+
return (0, ads_core_client_1.Ok)({
|
|
43
|
+
userId: domainUserId,
|
|
44
|
+
sessionId: domainSessionId,
|
|
45
|
+
sessionIndex: domainSessionIdx
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
exports.GetSnowplowSession = GetSnowplowSession;
|
|
49
|
+
class NoCookieError extends Error {
|
|
50
|
+
constructor() {
|
|
51
|
+
super('No snowplow cookie found in cookie set');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.NoCookieError = NoCookieError;
|
|
55
|
+
class MalformedCookieError extends Error {
|
|
56
|
+
constructor() {
|
|
57
|
+
super('The surfid.{hash} cookie was malformed');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.MalformedCookieError = MalformedCookieError;
|
|
23
61
|
//# sourceMappingURL=UserId.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserId.js","sourceRoot":"../@surfside-ads-core-web/","sources":["helpers/UserId.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"UserId.js","sourceRoot":"../@surfside-ads-core-web/","sources":["helpers/UserId.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/BuildInfo.js
CHANGED
package/lib/esm/Init.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CreateSurfAdsClient, Ok, LoadSurfAdsClientDependencies, GetBrowserInfo, PROD_TELEMETRY_SERVICE, DeviceToTelemetryDevice, } from '@surfside/ads-core-client';
|
|
1
|
+
import { CreateSurfAdsClient, Ok, LoadSurfAdsClientDependencies, GetBrowserInfo, PROD_TELEMETRY_SERVICE, DeviceToTelemetryDevice, GetValue, } from '@surfside/ads-core-client';
|
|
2
2
|
import { RenderBanner, RenderCarousel, RenderProductCard, RenderVideo } from '.';
|
|
3
|
-
import { WebTelemetryCollector } from './helpers';
|
|
3
|
+
import { GetSnowplowSession, WebTelemetryCollector } from './helpers';
|
|
4
4
|
const TLS = (url) => 'https:' + url;
|
|
5
5
|
;
|
|
6
6
|
export const CreateSurfAdsWeb = (config) => {
|
|
@@ -66,20 +66,22 @@ export const LoadSurfAdsWebSimple = async (accountId, siteId, channelId, locatio
|
|
|
66
66
|
return browserInfo;
|
|
67
67
|
}
|
|
68
68
|
const { windowInfo, navigator, isMobile, screen } = browserInfo.value;
|
|
69
|
+
const session = GetSnowplowSession(logger);
|
|
69
70
|
return await LoadSurfAdsWeb({
|
|
70
71
|
logger,
|
|
71
72
|
accountId,
|
|
72
73
|
channelId,
|
|
73
74
|
siteId,
|
|
74
75
|
locationId,
|
|
75
|
-
userId,
|
|
76
|
+
userId: userId ?? GetValue(session)?.userId,
|
|
76
77
|
windowInfo,
|
|
77
78
|
navigator,
|
|
78
79
|
mobile: isMobile,
|
|
79
80
|
screen,
|
|
80
81
|
ip: undefined,
|
|
81
82
|
overrides,
|
|
82
|
-
telemetry
|
|
83
|
+
telemetry,
|
|
84
|
+
session: GetValue(session)
|
|
83
85
|
});
|
|
84
86
|
};
|
|
85
87
|
//# sourceMappingURL=Init.js.map
|
package/lib/esm/Init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Init.js","sourceRoot":"../@surfside-ads-core-web/","sources":["Init.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAEnB,EAAE,EAKF,6BAA6B,EAE7B,cAAc,EAEd,sBAAsB,EACtB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"Init.js","sourceRoot":"../@surfside-ads-core-web/","sources":["Init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ctx } from '@surfside/ads-core-client';
|
|
1
|
+
import { Ctx, NotABrowserError, Err, Ok } from '@surfside/ads-core-client';
|
|
2
2
|
const COOKIE_PREFIX = 'surfid.';
|
|
3
3
|
const SURFID_REGEX = /surfid.(?<site_hash>[a-z0-9]+)=(?<domain_userid>[^.]+).*/ig;
|
|
4
4
|
export const GetSurfUserIdCookie = async (logger) => {
|
|
@@ -16,4 +16,39 @@ export const GetSurfUserIdCookie = async (logger) => {
|
|
|
16
16
|
log?.debug('SurfsideUserIDService.getUserId userId', userId);
|
|
17
17
|
return userId;
|
|
18
18
|
};
|
|
19
|
+
export const GetSnowplowSession = (logger) => {
|
|
20
|
+
if (typeof globalThis.document === 'undefined') {
|
|
21
|
+
return Err(new NotABrowserError());
|
|
22
|
+
}
|
|
23
|
+
const log = Ctx(logger)?.with('GetSnowplowSession');
|
|
24
|
+
log?.info('Getting snowplow session for script-set cookie (surfid.{hash})');
|
|
25
|
+
const cookieValue = globalThis.document.cookie
|
|
26
|
+
.split(';')
|
|
27
|
+
.map(c => c.trim())
|
|
28
|
+
.find(c => c.startsWith(COOKIE_PREFIX))
|
|
29
|
+
?.split('=')[1];
|
|
30
|
+
if (cookieValue === undefined) {
|
|
31
|
+
return Err(new NoCookieError);
|
|
32
|
+
}
|
|
33
|
+
const cookieParts = cookieValue.split('.');
|
|
34
|
+
if (cookieParts.length < 6) {
|
|
35
|
+
return Err(new MalformedCookieError);
|
|
36
|
+
}
|
|
37
|
+
const [domainUserId, , domainSessionIdx, , , domainSessionId] = cookieParts;
|
|
38
|
+
return Ok({
|
|
39
|
+
userId: domainUserId,
|
|
40
|
+
sessionId: domainSessionId,
|
|
41
|
+
sessionIndex: domainSessionIdx
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
export class NoCookieError extends Error {
|
|
45
|
+
constructor() {
|
|
46
|
+
super('No snowplow cookie found in cookie set');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export class MalformedCookieError extends Error {
|
|
50
|
+
constructor() {
|
|
51
|
+
super('The surfid.{hash} cookie was malformed');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
19
54
|
//# sourceMappingURL=UserId.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserId.js","sourceRoot":"../@surfside-ads-core-web/","sources":["helpers/UserId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"UserId.js","sourceRoot":"../@surfside-ads-core-web/","sources":["helpers/UserId.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
import { type ILogger } from '@surfside/ads-core-client';
|
|
1
|
+
import { type Result, type ILogger, type ISession } from '@surfside/ads-core-client';
|
|
2
2
|
export type GetUserIdFn = () => Promise<string | undefined>;
|
|
3
3
|
export declare const GetSurfUserIdCookie: (logger?: ILogger) => Promise<string | undefined>;
|
|
4
|
+
export declare const GetSnowplowSession: (logger?: ILogger) => Result<ISession>;
|
|
5
|
+
export declare class NoCookieError extends Error {
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
8
|
+
export declare class MalformedCookieError extends Error {
|
|
9
|
+
constructor();
|
|
10
|
+
}
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"types": "./lib/types/index.d.ts"
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.8.0-38252e2e.0",
|
|
14
14
|
"license": "UNLICENSED",
|
|
15
15
|
"files": [
|
|
16
16
|
"lib/",
|
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
"lint": "npx eslint"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@surfside/ads-core-client": "0.
|
|
31
|
-
"@surfside/ads-core-mock": "0.
|
|
30
|
+
"@surfside/ads-core-client": "0.8.0-38252e2e.0",
|
|
31
|
+
"@surfside/ads-core-mock": "0.8.0-38252e2e.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@eslint/js": "^9.25.1",
|
|
35
|
-
"@surfside/ads-core-mock": "0.
|
|
35
|
+
"@surfside/ads-core-mock": "0.8.0-38252e2e.0",
|
|
36
36
|
"@types/bun": "latest",
|
|
37
37
|
"eslint": "^9.25.1",
|
|
38
38
|
"handlebars": "^4.7.8",
|