@adtrackify/at-service-common 3.0.90 → 3.0.91
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/helpers/identity-cache-helper.d.ts +2 -1
- package/dist/cjs/helpers/identity-cache-helper.js +98 -14
- package/dist/cjs/helpers/identity-cache-helper.js.map +1 -1
- package/dist/cjs/helpers/input-validation-helper.js +1 -2
- package/dist/cjs/helpers/input-validation-helper.js.map +1 -1
- package/dist/esm/helpers/identity-cache-helper.d.ts +2 -1
- package/dist/esm/helpers/identity-cache-helper.js +97 -14
- package/dist/esm/helpers/identity-cache-helper.js.map +1 -1
- package/dist/esm/helpers/input-validation-helper.js +1 -2
- package/dist/esm/helpers/input-validation-helper.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { EventIdentity } from '@adtrackify/at-tracking-event-types';
|
|
1
|
+
import { AdClickInfo, EventIdentity } from '@adtrackify/at-tracking-event-types';
|
|
2
2
|
import { IdentityCache } from '../services';
|
|
3
3
|
export declare const isIdentityCacheStale: (identityCache: IdentityCache, incomingIdentity: EventIdentity) => boolean;
|
|
4
|
+
export declare const isClickInfosStale: (cachedClick: AdClickInfo, incomingClick: AdClickInfo) => boolean;
|
|
@@ -1,62 +1,96 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isIdentityCacheStale = void 0;
|
|
3
|
+
exports.isClickInfosStale = exports.isIdentityCacheStale = void 0;
|
|
4
4
|
const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
5
5
|
const logging_helper_1 = require("./logging-helper");
|
|
6
6
|
const isIdentityCacheStale = (identityCache, incomingIdentity) => {
|
|
7
7
|
try {
|
|
8
8
|
const cachedTraits = identityCache.response?.traits ?? {};
|
|
9
9
|
const incomingTraits = incomingIdentity?.traits ?? {};
|
|
10
|
+
const identityCacheStaleTracker = {
|
|
11
|
+
cachedTraits: cachedTraits,
|
|
12
|
+
incomingTraits: incomingTraits,
|
|
13
|
+
isUserIdsStale: false,
|
|
14
|
+
isIdsStale: false,
|
|
15
|
+
isEmailsStale: false,
|
|
16
|
+
isPhonesStale: false,
|
|
17
|
+
isShopifyYIdsStale: false,
|
|
18
|
+
isGendersStale: false,
|
|
19
|
+
isDobsStale: false,
|
|
20
|
+
isAddressesStale: false,
|
|
21
|
+
isClickInfosStale: false,
|
|
22
|
+
isIpAddressStale: false,
|
|
23
|
+
isUserAgentStale: false,
|
|
24
|
+
isCacheStale: false
|
|
25
|
+
};
|
|
10
26
|
const isNewUserIds = (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.userIds ?? [], incomingTraits?.userIds ?? []);
|
|
11
27
|
if (isNewUserIds) {
|
|
12
28
|
logging_helper_1.Logger.debug('identity cache miss - userIds changed', { cachedTraits, incomingTraits });
|
|
13
|
-
|
|
29
|
+
identityCacheStaleTracker.isUserIdsStale = true;
|
|
30
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
14
31
|
}
|
|
15
32
|
const isNewIds = (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.ids ?? [], incomingTraits?.ids ?? []);
|
|
16
33
|
if (isNewIds) {
|
|
17
34
|
logging_helper_1.Logger.debug('identity cache miss - ids changed', { cachedTraits, incomingTraits });
|
|
18
|
-
|
|
35
|
+
identityCacheStaleTracker.isIdsStale = true;
|
|
36
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
19
37
|
}
|
|
20
38
|
const isNewEmails = (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.emails ?? [], incomingTraits?.emails ?? []);
|
|
21
39
|
if (isNewEmails) {
|
|
22
40
|
logging_helper_1.Logger.debug('identity cache miss - emails changed', { cachedTraits, incomingTraits });
|
|
23
|
-
|
|
41
|
+
identityCacheStaleTracker.isEmailsStale = true;
|
|
42
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
24
43
|
}
|
|
25
44
|
const isNewPhones = (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.phones ?? [], incomingTraits?.phones ?? []);
|
|
26
45
|
if (isNewPhones) {
|
|
27
46
|
logging_helper_1.Logger.debug('identity cache miss - phones changed', { cachedTraits, incomingTraits });
|
|
28
|
-
|
|
47
|
+
identityCacheStaleTracker.isPhonesStale = true;
|
|
48
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
29
49
|
}
|
|
30
50
|
const isNewShopifyYIds = (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.shopifyYIds ?? [], incomingTraits?.shopifyYIds ?? []);
|
|
31
51
|
if (isNewShopifyYIds) {
|
|
32
52
|
logging_helper_1.Logger.debug('identity cache miss - shopify Y ids changed', { cachedTraits, incomingTraits });
|
|
33
|
-
|
|
53
|
+
identityCacheStaleTracker.isShopifyYIdsStale = true;
|
|
54
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
34
55
|
}
|
|
35
56
|
const isNewGenders = (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.genders ?? [], incomingTraits?.genders ?? []);
|
|
36
57
|
if (isNewGenders) {
|
|
37
58
|
logging_helper_1.Logger.debug('identity cache miss - genders changed', { cachedTraits, incomingTraits });
|
|
38
|
-
|
|
59
|
+
identityCacheStaleTracker.isGendersStale = true;
|
|
60
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
39
61
|
}
|
|
40
62
|
const isNewDobs = (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.dobs ?? [], incomingTraits?.dobs ?? []);
|
|
41
63
|
if (isNewDobs) {
|
|
42
64
|
logging_helper_1.Logger.debug('identity cache miss - dobs changed', { cachedTraits, incomingTraits });
|
|
43
|
-
|
|
65
|
+
identityCacheStaleTracker.isDobsStale = true;
|
|
66
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
44
67
|
}
|
|
45
68
|
const isNewAddress = (0, at_shared_utils_1.hasNewAddress)(cachedTraits?.addresses ?? [], incomingTraits?.addresses ?? []);
|
|
46
69
|
if (isNewAddress) {
|
|
47
70
|
logging_helper_1.Logger.debug('identity cache miss - address changed', { cachedTraits, incomingTraits });
|
|
48
|
-
|
|
71
|
+
identityCacheStaleTracker.isAddressesStale = true;
|
|
72
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
49
73
|
}
|
|
50
|
-
const isNewClick = (0,
|
|
74
|
+
const isNewClick = (0, exports.isClickInfosStale)(cachedTraits?.click ?? {}, incomingTraits?.click ?? {});
|
|
51
75
|
if (isNewClick) {
|
|
52
76
|
logging_helper_1.Logger.debug('identity cache miss - clickInfos changed', { cachedTraits, incomingTraits });
|
|
53
|
-
|
|
77
|
+
identityCacheStaleTracker.isClickInfosStale = true;
|
|
78
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
54
79
|
}
|
|
55
|
-
if (
|
|
80
|
+
if (incomingTraits?.ipAddress && cachedTraits?.ipAddress !== incomingTraits?.ipAddress) {
|
|
56
81
|
logging_helper_1.Logger.debug('identity cache miss - ip/userAgent changed', { cachedTraits, incomingTraits });
|
|
57
|
-
|
|
82
|
+
identityCacheStaleTracker.isIpAddressStale = true;
|
|
83
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
84
|
+
}
|
|
85
|
+
if (incomingTraits?.userAgent && cachedTraits?.userAgent !== incomingTraits?.userAgent) {
|
|
86
|
+
logging_helper_1.Logger.debug('identity cache miss - userAgent changed', { cachedTraits, incomingTraits });
|
|
87
|
+
identityCacheStaleTracker.isUserAgentStale = true;
|
|
88
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
89
|
+
}
|
|
90
|
+
if (identityCacheStaleTracker.isCacheStale) {
|
|
91
|
+
logging_helper_1.Logger.debug('identity cache miss - cache stale', { identityCacheStaleTracker });
|
|
58
92
|
}
|
|
59
|
-
return
|
|
93
|
+
return identityCacheStaleTracker.isCacheStale;
|
|
60
94
|
}
|
|
61
95
|
catch (err) {
|
|
62
96
|
logging_helper_1.Logger.error('Error while checking if identity cache is stale', { err });
|
|
@@ -64,4 +98,54 @@ const isIdentityCacheStale = (identityCache, incomingIdentity) => {
|
|
|
64
98
|
}
|
|
65
99
|
};
|
|
66
100
|
exports.isIdentityCacheStale = isIdentityCacheStale;
|
|
101
|
+
const isClickInfosStale = (cachedClick, incomingClick) => {
|
|
102
|
+
const cleanedCachedClick = (0, at_shared_utils_1.removeEmptyFields)(cachedClick);
|
|
103
|
+
const cleanedIncomingClick = (0, at_shared_utils_1.removeEmptyFields)(incomingClick);
|
|
104
|
+
const incomingKeys = Object.keys(cleanedIncomingClick);
|
|
105
|
+
const clickInfoStaleTracker = {
|
|
106
|
+
cleanedCachedClick,
|
|
107
|
+
cleanedIncomingClick,
|
|
108
|
+
isClickInfosStale: false,
|
|
109
|
+
staleKeys: []
|
|
110
|
+
};
|
|
111
|
+
incomingKeys.forEach(key => {
|
|
112
|
+
if (key === 'googleClientInfos' || key.includes('CollectedAt')) {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
else if (key === 'fbc') {
|
|
116
|
+
const cachedClickValue = cleanedCachedClick?.[key];
|
|
117
|
+
const incomingClickValue = cleanedIncomingClick?.[key];
|
|
118
|
+
if (incomingClickValue && !cachedClickValue) {
|
|
119
|
+
clickInfoStaleTracker.isClickInfosStale = true;
|
|
120
|
+
clickInfoStaleTracker.staleKeys.push(key);
|
|
121
|
+
}
|
|
122
|
+
else if (incomingClickValue && cachedClickValue && incomingClickValue !== cachedClickValue) {
|
|
123
|
+
const incomingFbcFbclid = incomingClickValue?.split('.')?.[3];
|
|
124
|
+
const cachedFbcFbclid = cachedClickValue?.split('.')?.[3];
|
|
125
|
+
if (incomingFbcFbclid !== cachedFbcFbclid) {
|
|
126
|
+
clickInfoStaleTracker.isClickInfosStale = true;
|
|
127
|
+
clickInfoStaleTracker.staleKeys.push(key);
|
|
128
|
+
}
|
|
129
|
+
if (!incomingFbcFbclid || !cachedFbcFbclid) {
|
|
130
|
+
clickInfoStaleTracker.isClickInfosStale = true;
|
|
131
|
+
clickInfoStaleTracker.staleKeys.push(key);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
const cachedClickValue = cleanedCachedClick?.[key];
|
|
137
|
+
const incomingClickValue = cleanedIncomingClick?.[key];
|
|
138
|
+
if ((incomingClickValue && !cachedClickValue)
|
|
139
|
+
|| incomingClickValue !== cachedClickValue) {
|
|
140
|
+
clickInfoStaleTracker.isClickInfosStale = true;
|
|
141
|
+
clickInfoStaleTracker.staleKeys.push(key);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
if (clickInfoStaleTracker.isClickInfosStale) {
|
|
146
|
+
logging_helper_1.Logger.debug('identity cache miss - clickInfos changed', { clickInfoStaleTracker });
|
|
147
|
+
}
|
|
148
|
+
return clickInfoStaleTracker.isClickInfosStale;
|
|
149
|
+
};
|
|
150
|
+
exports.isClickInfosStale = isClickInfosStale;
|
|
67
151
|
//# sourceMappingURL=identity-cache-helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-cache-helper.js","sourceRoot":"","sources":["../../../src/helpers/identity-cache-helper.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"identity-cache-helper.js","sourceRoot":"","sources":["../../../src/helpers/identity-cache-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,6 @@ const http_error_js_1 = require("../libs/http-error.js");
|
|
|
6
6
|
const validateInput = (schema, input) => {
|
|
7
7
|
const { error, value } = schema.validate(input);
|
|
8
8
|
if (error) {
|
|
9
|
-
logging_helper_js_1.Logger.info('', { error });
|
|
10
9
|
const httperr = http_error_js_1.HttpError.badRequest('Bad Request', {
|
|
11
10
|
errors: error.details.map((detail) => ({
|
|
12
11
|
message: detail?.message,
|
|
@@ -14,7 +13,7 @@ const validateInput = (schema, input) => {
|
|
|
14
13
|
path: detail?.path,
|
|
15
14
|
})),
|
|
16
15
|
});
|
|
17
|
-
logging_helper_js_1.Logger.error('validation failure', { httperr });
|
|
16
|
+
logging_helper_js_1.Logger.error('validation failure', { error, httperr });
|
|
18
17
|
throw httperr;
|
|
19
18
|
}
|
|
20
19
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-validation-helper.js","sourceRoot":"","sources":["../../../src/helpers/input-validation-helper.ts"],"names":[],"mappings":";;;AACA,2DAA6C;AAC7C,yDAAkD;AAE3C,MAAM,aAAa,GAAG,CAAC,MAA6B,EAAE,KAAU,EAAE,EAAE;IACzE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"input-validation-helper.js","sourceRoot":"","sources":["../../../src/helpers/input-validation-helper.ts"],"names":[],"mappings":";;;AACA,2DAA6C;AAC7C,yDAAkD;AAE3C,MAAM,aAAa,GAAG,CAAC,MAA6B,EAAE,KAAU,EAAE,EAAE;IACzE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,KAAK,EAAE;QAGT,MAAM,OAAO,GAAG,yBAAS,CAAC,UAAU,CAAC,aAAa,EAAE;YAClD,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO;gBACxB,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;gBACzB,IAAI,EAAE,MAAM,EAAE,IAAI;aACnB,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,0BAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAjBW,QAAA,aAAa,iBAiBxB;AAEW,QAAA,yBAAyB,GAAG,qBAAa,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { EventIdentity } from '@adtrackify/at-tracking-event-types';
|
|
1
|
+
import { AdClickInfo, EventIdentity } from '@adtrackify/at-tracking-event-types';
|
|
2
2
|
import { IdentityCache } from '../services';
|
|
3
3
|
export declare const isIdentityCacheStale: (identityCache: IdentityCache, incomingIdentity: EventIdentity) => boolean;
|
|
4
|
+
export declare const isClickInfosStale: (cachedClick: AdClickInfo, incomingClick: AdClickInfo) => boolean;
|
|
@@ -1,63 +1,146 @@
|
|
|
1
|
-
import { hasNewTrait, hasNewAddress,
|
|
1
|
+
import { hasNewTrait, hasNewAddress, removeEmptyFields } from '@adtrackify/at-shared-utils';
|
|
2
2
|
import { Logger } from './logging-helper';
|
|
3
3
|
export const isIdentityCacheStale = (identityCache, incomingIdentity) => {
|
|
4
4
|
try {
|
|
5
5
|
const cachedTraits = identityCache.response?.traits ?? {};
|
|
6
6
|
const incomingTraits = incomingIdentity?.traits ?? {};
|
|
7
|
+
const identityCacheStaleTracker = {
|
|
8
|
+
cachedTraits: cachedTraits,
|
|
9
|
+
incomingTraits: incomingTraits,
|
|
10
|
+
isUserIdsStale: false,
|
|
11
|
+
isIdsStale: false,
|
|
12
|
+
isEmailsStale: false,
|
|
13
|
+
isPhonesStale: false,
|
|
14
|
+
isShopifyYIdsStale: false,
|
|
15
|
+
isGendersStale: false,
|
|
16
|
+
isDobsStale: false,
|
|
17
|
+
isAddressesStale: false,
|
|
18
|
+
isClickInfosStale: false,
|
|
19
|
+
isIpAddressStale: false,
|
|
20
|
+
isUserAgentStale: false,
|
|
21
|
+
isCacheStale: false
|
|
22
|
+
};
|
|
7
23
|
const isNewUserIds = hasNewTrait(cachedTraits?.userIds ?? [], incomingTraits?.userIds ?? []);
|
|
8
24
|
if (isNewUserIds) {
|
|
9
25
|
Logger.debug('identity cache miss - userIds changed', { cachedTraits, incomingTraits });
|
|
10
|
-
|
|
26
|
+
identityCacheStaleTracker.isUserIdsStale = true;
|
|
27
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
11
28
|
}
|
|
12
29
|
const isNewIds = hasNewTrait(cachedTraits?.ids ?? [], incomingTraits?.ids ?? []);
|
|
13
30
|
if (isNewIds) {
|
|
14
31
|
Logger.debug('identity cache miss - ids changed', { cachedTraits, incomingTraits });
|
|
15
|
-
|
|
32
|
+
identityCacheStaleTracker.isIdsStale = true;
|
|
33
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
16
34
|
}
|
|
17
35
|
const isNewEmails = hasNewTrait(cachedTraits?.emails ?? [], incomingTraits?.emails ?? []);
|
|
18
36
|
if (isNewEmails) {
|
|
19
37
|
Logger.debug('identity cache miss - emails changed', { cachedTraits, incomingTraits });
|
|
20
|
-
|
|
38
|
+
identityCacheStaleTracker.isEmailsStale = true;
|
|
39
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
21
40
|
}
|
|
22
41
|
const isNewPhones = hasNewTrait(cachedTraits?.phones ?? [], incomingTraits?.phones ?? []);
|
|
23
42
|
if (isNewPhones) {
|
|
24
43
|
Logger.debug('identity cache miss - phones changed', { cachedTraits, incomingTraits });
|
|
25
|
-
|
|
44
|
+
identityCacheStaleTracker.isPhonesStale = true;
|
|
45
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
26
46
|
}
|
|
27
47
|
const isNewShopifyYIds = hasNewTrait(cachedTraits?.shopifyYIds ?? [], incomingTraits?.shopifyYIds ?? []);
|
|
28
48
|
if (isNewShopifyYIds) {
|
|
29
49
|
Logger.debug('identity cache miss - shopify Y ids changed', { cachedTraits, incomingTraits });
|
|
30
|
-
|
|
50
|
+
identityCacheStaleTracker.isShopifyYIdsStale = true;
|
|
51
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
31
52
|
}
|
|
32
53
|
const isNewGenders = hasNewTrait(cachedTraits?.genders ?? [], incomingTraits?.genders ?? []);
|
|
33
54
|
if (isNewGenders) {
|
|
34
55
|
Logger.debug('identity cache miss - genders changed', { cachedTraits, incomingTraits });
|
|
35
|
-
|
|
56
|
+
identityCacheStaleTracker.isGendersStale = true;
|
|
57
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
36
58
|
}
|
|
37
59
|
const isNewDobs = hasNewTrait(cachedTraits?.dobs ?? [], incomingTraits?.dobs ?? []);
|
|
38
60
|
if (isNewDobs) {
|
|
39
61
|
Logger.debug('identity cache miss - dobs changed', { cachedTraits, incomingTraits });
|
|
40
|
-
|
|
62
|
+
identityCacheStaleTracker.isDobsStale = true;
|
|
63
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
41
64
|
}
|
|
42
65
|
const isNewAddress = hasNewAddress(cachedTraits?.addresses ?? [], incomingTraits?.addresses ?? []);
|
|
43
66
|
if (isNewAddress) {
|
|
44
67
|
Logger.debug('identity cache miss - address changed', { cachedTraits, incomingTraits });
|
|
45
|
-
|
|
68
|
+
identityCacheStaleTracker.isAddressesStale = true;
|
|
69
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
46
70
|
}
|
|
47
|
-
const isNewClick =
|
|
71
|
+
const isNewClick = isClickInfosStale(cachedTraits?.click ?? {}, incomingTraits?.click ?? {});
|
|
48
72
|
if (isNewClick) {
|
|
49
73
|
Logger.debug('identity cache miss - clickInfos changed', { cachedTraits, incomingTraits });
|
|
50
|
-
|
|
74
|
+
identityCacheStaleTracker.isClickInfosStale = true;
|
|
75
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
51
76
|
}
|
|
52
|
-
if (
|
|
77
|
+
if (incomingTraits?.ipAddress && cachedTraits?.ipAddress !== incomingTraits?.ipAddress) {
|
|
53
78
|
Logger.debug('identity cache miss - ip/userAgent changed', { cachedTraits, incomingTraits });
|
|
54
|
-
|
|
79
|
+
identityCacheStaleTracker.isIpAddressStale = true;
|
|
80
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
81
|
+
}
|
|
82
|
+
if (incomingTraits?.userAgent && cachedTraits?.userAgent !== incomingTraits?.userAgent) {
|
|
83
|
+
Logger.debug('identity cache miss - userAgent changed', { cachedTraits, incomingTraits });
|
|
84
|
+
identityCacheStaleTracker.isUserAgentStale = true;
|
|
85
|
+
identityCacheStaleTracker.isCacheStale = true;
|
|
86
|
+
}
|
|
87
|
+
if (identityCacheStaleTracker.isCacheStale) {
|
|
88
|
+
Logger.debug('identity cache miss - cache stale', { identityCacheStaleTracker });
|
|
55
89
|
}
|
|
56
|
-
return
|
|
90
|
+
return identityCacheStaleTracker.isCacheStale;
|
|
57
91
|
}
|
|
58
92
|
catch (err) {
|
|
59
93
|
Logger.error('Error while checking if identity cache is stale', { err });
|
|
60
94
|
return true;
|
|
61
95
|
}
|
|
62
96
|
};
|
|
97
|
+
export const isClickInfosStale = (cachedClick, incomingClick) => {
|
|
98
|
+
const cleanedCachedClick = removeEmptyFields(cachedClick);
|
|
99
|
+
const cleanedIncomingClick = removeEmptyFields(incomingClick);
|
|
100
|
+
const incomingKeys = Object.keys(cleanedIncomingClick);
|
|
101
|
+
const clickInfoStaleTracker = {
|
|
102
|
+
cleanedCachedClick,
|
|
103
|
+
cleanedIncomingClick,
|
|
104
|
+
isClickInfosStale: false,
|
|
105
|
+
staleKeys: []
|
|
106
|
+
};
|
|
107
|
+
incomingKeys.forEach(key => {
|
|
108
|
+
if (key === 'googleClientInfos' || key.includes('CollectedAt')) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
else if (key === 'fbc') {
|
|
112
|
+
const cachedClickValue = cleanedCachedClick?.[key];
|
|
113
|
+
const incomingClickValue = cleanedIncomingClick?.[key];
|
|
114
|
+
if (incomingClickValue && !cachedClickValue) {
|
|
115
|
+
clickInfoStaleTracker.isClickInfosStale = true;
|
|
116
|
+
clickInfoStaleTracker.staleKeys.push(key);
|
|
117
|
+
}
|
|
118
|
+
else if (incomingClickValue && cachedClickValue && incomingClickValue !== cachedClickValue) {
|
|
119
|
+
const incomingFbcFbclid = incomingClickValue?.split('.')?.[3];
|
|
120
|
+
const cachedFbcFbclid = cachedClickValue?.split('.')?.[3];
|
|
121
|
+
if (incomingFbcFbclid !== cachedFbcFbclid) {
|
|
122
|
+
clickInfoStaleTracker.isClickInfosStale = true;
|
|
123
|
+
clickInfoStaleTracker.staleKeys.push(key);
|
|
124
|
+
}
|
|
125
|
+
if (!incomingFbcFbclid || !cachedFbcFbclid) {
|
|
126
|
+
clickInfoStaleTracker.isClickInfosStale = true;
|
|
127
|
+
clickInfoStaleTracker.staleKeys.push(key);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
const cachedClickValue = cleanedCachedClick?.[key];
|
|
133
|
+
const incomingClickValue = cleanedIncomingClick?.[key];
|
|
134
|
+
if ((incomingClickValue && !cachedClickValue)
|
|
135
|
+
|| incomingClickValue !== cachedClickValue) {
|
|
136
|
+
clickInfoStaleTracker.isClickInfosStale = true;
|
|
137
|
+
clickInfoStaleTracker.staleKeys.push(key);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
if (clickInfoStaleTracker.isClickInfosStale) {
|
|
142
|
+
Logger.debug('identity cache miss - clickInfos changed', { clickInfoStaleTracker });
|
|
143
|
+
}
|
|
144
|
+
return clickInfoStaleTracker.isClickInfosStale;
|
|
145
|
+
};
|
|
63
146
|
//# sourceMappingURL=identity-cache-helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-cache-helper.js","sourceRoot":"","sources":["../../../src/helpers/identity-cache-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"identity-cache-helper.js","sourceRoot":"","sources":["../../../src/helpers/identity-cache-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { HttpError } from '../libs/http-error.js';
|
|
|
3
3
|
export const validateInput = (schema, input) => {
|
|
4
4
|
const { error, value } = schema.validate(input);
|
|
5
5
|
if (error) {
|
|
6
|
-
Logger.info('', { error });
|
|
7
6
|
const httperr = HttpError.badRequest('Bad Request', {
|
|
8
7
|
errors: error.details.map((detail) => ({
|
|
9
8
|
message: detail?.message,
|
|
@@ -11,7 +10,7 @@ export const validateInput = (schema, input) => {
|
|
|
11
10
|
path: detail?.path,
|
|
12
11
|
})),
|
|
13
12
|
});
|
|
14
|
-
Logger.error('validation failure', { httperr });
|
|
13
|
+
Logger.error('validation failure', { error, httperr });
|
|
15
14
|
throw httperr;
|
|
16
15
|
}
|
|
17
16
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-validation-helper.js","sourceRoot":"","sources":["../../../src/helpers/input-validation-helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA6B,EAAE,KAAU,EAAE,EAAE;IACzE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"input-validation-helper.js","sourceRoot":"","sources":["../../../src/helpers/input-validation-helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA6B,EAAE,KAAU,EAAE,EAAE;IACzE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,KAAK,EAAE;QAGT,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,aAAa,EAAE;YAClD,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO;gBACxB,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;gBACzB,IAAI,EAAE,MAAM,EAAE,IAAI;aACnB,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adtrackify/at-service-common",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.91",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/*"
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"@aws-sdk/client-sqs": "^3.345.0",
|
|
65
65
|
"@aws-sdk/lib-dynamodb": "^3.345.0",
|
|
66
66
|
"@faker-js/faker": "^7.5.0",
|
|
67
|
-
"@swc/core": "^1.
|
|
68
|
-
"@swc/jest": "^0.2.
|
|
67
|
+
"@swc/core": "^1.7.35",
|
|
68
|
+
"@swc/jest": "^0.2.36",
|
|
69
69
|
"@types/jest": "^28.1.8",
|
|
70
70
|
"@types/lambda-log": "^3.0.0",
|
|
71
71
|
"@types/luxon": "^3.0.1",
|
|
@@ -97,11 +97,11 @@
|
|
|
97
97
|
"prettier": "^2.7.1",
|
|
98
98
|
"regenerator-runtime": "^0.13.9",
|
|
99
99
|
"rimraf": "^3.0.2",
|
|
100
|
-
"swc-loader": "^0.2.
|
|
100
|
+
"swc-loader": "^0.2.6",
|
|
101
101
|
"ts-jest": "^29.0.5",
|
|
102
102
|
"ts-jest-resolver": "^2.0.1",
|
|
103
|
-
"ts-loader": "^9.
|
|
104
|
-
"ts-node": "^10.9.
|
|
103
|
+
"ts-loader": "^9.5.1",
|
|
104
|
+
"ts-node": "^10.9.2",
|
|
105
105
|
"tslint": "^6.1.3",
|
|
106
106
|
"tslint-config-prettier": "^1.18.0",
|
|
107
107
|
"typescript": "4.9.5"
|