@uniformdev/optimize-tracker
Advanced tools
Comparing version 5.0.2-alpha.32 to 5.0.2-alpha.41
@@ -1,8 +0,7 @@ | ||
import { TrackerLogLevels, TrackerPlugin } from '@uniformdev/optimize-tracker-common'; | ||
import { TrackerPlugin } from '@uniformdev/optimize-tracker-common'; | ||
declare type BrowserExtensionOptions = { | ||
logLevelThreshold?: TrackerLogLevels; | ||
/** Whether to listen for events from the browser extension, such as setting scores. Does not affect broadcasting to the extension. */ | ||
disableEventListeners?: boolean; | ||
interfaceObject?: Pick<Window, 'addEventListener' | 'postMessage'>; | ||
}; | ||
export declare const addBrowserExtension: (options?: BrowserExtensionOptions | undefined) => TrackerPlugin; | ||
export {}; |
@@ -42,25 +42,24 @@ "use strict"; | ||
var optimize_tracker_common_1 = require("@uniformdev/optimize-tracker-common"); | ||
var utils_1 = require("../utils"); | ||
var isBrowser = typeof window !== 'undefined'; | ||
var addBrowserExtension = function (options) { | ||
var trackerOptions; | ||
var _a = options || {}, disableEventListeners = _a.disableEventListeners, interfaceObject = _a.interfaceObject, _b = _a.logLevelThreshold, logLevelThreshold = _b === void 0 ? 'verbose' : _b; | ||
var resolvedInterfaceObject = interfaceObject || (typeof window !== 'undefined' ? window : undefined); | ||
var disableEventListeners = (options || {}).disableEventListeners; | ||
if (!disableEventListeners) { | ||
if (typeof resolvedInterfaceObject !== 'undefined') { | ||
resolvedInterfaceObject.addEventListener('message', function (event) { return __awaiter(void 0, void 0, void 0, function () { | ||
var data, scores; | ||
if (isBrowser) { | ||
window.addEventListener('message', function (event) { return __awaiter(void 0, void 0, void 0, function () { | ||
var scores; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
data = event.data; | ||
if (!data) { | ||
if (!event.data) { | ||
return [2 /*return*/]; | ||
} | ||
if (!optimize_tracker_common_1.isExtensionSetScoreEvent(data)) return [3 /*break*/, 3]; | ||
scores = JSON.parse(data.scores); | ||
if (!optimize_tracker_common_1.isExtensionSetScoreMessage(event.data)) return [3 /*break*/, 3]; | ||
scores = event.data.score; | ||
if (!scores) return [3 /*break*/, 3]; | ||
return [4 /*yield*/, (trackerOptions === null || trackerOptions === void 0 ? void 0 : trackerOptions.setIntentStrength(optimize_common_1.Scope.Visit, {}))]; | ||
console.warn('[Uniform] browser extension has set intent scores. Note that this sets all scores to the visit scope and clears any existing visitor values.', scores); | ||
return [4 /*yield*/, (trackerOptions === null || trackerOptions === void 0 ? void 0 : trackerOptions.setIntentStrength(optimize_common_1.Scope.Visitor, {}))]; | ||
case 1: | ||
_a.sent(); | ||
return [4 /*yield*/, (trackerOptions === null || trackerOptions === void 0 ? void 0 : trackerOptions.setIntentStrength(optimize_common_1.Scope.Visitor, scores))]; | ||
return [4 /*yield*/, (trackerOptions === null || trackerOptions === void 0 ? void 0 : trackerOptions.setIntentStrength(optimize_common_1.Scope.Visit, scores))]; | ||
case 2: | ||
@@ -79,18 +78,30 @@ _a.sent(); | ||
trackerOptions = options; | ||
if (isBrowser) { | ||
window.postMessage({ | ||
type: optimize_tracker_common_1.ExtensionEvents.Hello, | ||
manifest: options.manifest, | ||
}, window.location.origin); | ||
} | ||
}, | ||
onLogMessage: function (options) { | ||
if (typeof resolvedInterfaceObject !== 'undefined') { | ||
var level = options.level; | ||
var shouldOutput = utils_1.isLogLevelUnderThreshold(logLevelThreshold, level); | ||
if (!shouldOutput) { | ||
return; | ||
} | ||
resolvedInterfaceObject === null || resolvedInterfaceObject === void 0 ? void 0 : resolvedInterfaceObject.postMessage({ | ||
type: 'log', | ||
message: JSON.stringify(options), | ||
}, '*'); | ||
if (isBrowser) { | ||
window.postMessage({ | ||
type: optimize_tracker_common_1.ExtensionEvents.Log, | ||
message: options, | ||
}, window.location.origin); | ||
} | ||
}, | ||
onScoringChange: function (score) { | ||
if (!score) { | ||
return; | ||
} | ||
if (isBrowser) { | ||
window.postMessage({ | ||
type: optimize_tracker_common_1.ExtensionEvents.Score, | ||
score: score, | ||
}, window.location.origin); | ||
} | ||
}, | ||
}; | ||
}; | ||
exports.addBrowserExtension = addBrowserExtension; |
@@ -40,3 +40,3 @@ "use strict"; | ||
else if (level === 'verbose') { | ||
style = 'color: gray; font-size: 0.9em;'; | ||
style = 'font-size: 0.8em;'; | ||
} | ||
@@ -43,0 +43,0 @@ var consoleMessage = "%c[Uniform] " + message; |
@@ -12,3 +12,2 @@ import { TrackerPlugin, LogMessageFunction, TrackFunction, TrackerPlugins, InitializeFunction, ScoringChangeListener } from '@uniformdev/optimize-tracker-common'; | ||
find<TFunction>(type: keyof TrackerPlugin): TFunction[]; | ||
findSingle<TFunction>(type: keyof TrackerPlugin): TFunction; | ||
} |
@@ -93,11 +93,4 @@ "use strict"; | ||
}; | ||
OptimizePluginLoader.prototype.findSingle = function (type) { | ||
var _a = this.find(type), firstPlugin = _a[0], rest = _a.slice(1); | ||
if (rest && rest.length) { | ||
console.log("Multiple plugins registered for " + type); | ||
} | ||
return firstPlugin; | ||
}; | ||
return OptimizePluginLoader; | ||
}()); | ||
exports.OptimizePluginLoader = OptimizePluginLoader; |
@@ -62,5 +62,17 @@ "use strict"; | ||
url = new URL(requestContext.url); | ||
log === null || log === void 0 ? void 0 : log({ level: 'verbose', message: 'Checking URL', region: loggingRegion, url: url, criteria: signal.path }); | ||
log === null || log === void 0 ? void 0 : log({ | ||
level: 'verbose', | ||
message: 'Checking URL', | ||
region: loggingRegion, | ||
url: url.toString(), | ||
criteria: signal.path, | ||
}); | ||
if (optimize_common_1.isStringMatch(url.pathname, signal.path)) { | ||
log === null || log === void 0 ? void 0 : log({ level: 'info', message: 'URL is a match', region: loggingRegion, url: url, criteria: signal.path }); | ||
log === null || log === void 0 ? void 0 : log({ | ||
level: 'info', | ||
message: 'URL is a match', | ||
region: loggingRegion, | ||
url: url.toString(), | ||
criteria: signal.path, | ||
}); | ||
strength = Number(signal.str); | ||
@@ -67,0 +79,0 @@ } |
@@ -23,6 +23,18 @@ "use strict"; | ||
var url = new URL(requestContext.url); | ||
log === null || log === void 0 ? void 0 : log({ level: 'verbose', message: 'Checking URL', region: loggingRegion, url: url, criteria: signal.path }); | ||
log === null || log === void 0 ? void 0 : log({ | ||
level: 'verbose', | ||
message: 'Checking URL', | ||
region: loggingRegion, | ||
url: url.toString(), | ||
criteria: signal.path, | ||
}); | ||
var strength; | ||
if (optimize_common_1.isStringMatch(url.pathname, signal.path)) { | ||
log === null || log === void 0 ? void 0 : log({ level: 'info', message: 'URL is a match', region: loggingRegion, url: url, criteria: signal.path }); | ||
log === null || log === void 0 ? void 0 : log({ | ||
level: 'info', | ||
message: 'URL is a match', | ||
region: loggingRegion, | ||
url: url.toString(), | ||
criteria: signal.path, | ||
}); | ||
strength = Number(signal.str); | ||
@@ -35,3 +47,3 @@ } | ||
region: loggingRegion, | ||
url: url, | ||
url: url.toString(), | ||
criteria: signal.path, | ||
@@ -38,0 +50,0 @@ }); |
@@ -23,3 +23,3 @@ "use strict"; | ||
var url = new URL(requestContext.url); | ||
log === null || log === void 0 ? void 0 : log({ level: 'verbose', message: 'Checking URL', region: loggingRegion, url: url }); | ||
log === null || log === void 0 ? void 0 : log({ level: 'verbose', message: 'Checking URL', region: loggingRegion, url: url.toString() }); | ||
var parameterValue = url.searchParams.get(signal.parameter); | ||
@@ -30,7 +30,12 @@ log === null || log === void 0 ? void 0 : log({ | ||
region: loggingRegion, | ||
url: url, | ||
url: url.toString(), | ||
parameter: signal.parameter, | ||
}); | ||
if (!parameterValue) { | ||
log === null || log === void 0 ? void 0 : log({ level: 'verbose', message: 'Query string value not defined', region: loggingRegion, url: url }); | ||
log === null || log === void 0 ? void 0 : log({ | ||
level: 'verbose', | ||
message: 'Query string value not defined', | ||
region: loggingRegion, | ||
url: url.toString(), | ||
}); | ||
return undefined; | ||
@@ -37,0 +42,0 @@ } |
@@ -49,2 +49,13 @@ "use strict"; | ||
}; | ||
var __rest = (this && this.__rest) || function (s, e) { | ||
var t = {}; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) | ||
t[p] = s[p]; | ||
if (s != null && typeof Object.getOwnPropertySymbols === "function") | ||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { | ||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) | ||
t[p[i]] = s[p[i]]; | ||
} | ||
return t; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -194,12 +205,5 @@ exports.OptimizeTracker = void 0; | ||
return __awaiter(this, void 0, void 0, function () { | ||
var blankSlate; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
blankSlate = { | ||
strategy: 'blank', | ||
values: {}, | ||
updated: new Date().valueOf(), | ||
}; | ||
return [4 /*yield*/, this.applyScoringStrategy(scope, blankSlate, valueToSet, 1)]; | ||
case 0: return [4 /*yield*/, this.applyScoringStrategy(scope, undefined, valueToSet, 1)]; | ||
case 1: | ||
@@ -245,3 +249,3 @@ _a.sent(); | ||
if (!somethingWasRemoved_1) return [3 /*break*/, 4]; | ||
return [4 /*yield*/, this.writeScoring(currentScope, __assign(__assign({}, currentScoring), { values: updatedScoring_1 }), currentScoring, options === null || options === void 0 ? void 0 : options.quiet)]; | ||
return [4 /*yield*/, this.writeScoring(currentScope, __assign(__assign({}, currentScoring), { values: updatedScoring_1 }), currentScoring)]; | ||
case 2: | ||
@@ -570,3 +574,3 @@ _a.sent(); | ||
return __awaiter(this, void 0, void 0, function () { | ||
var loggingRegion, shouldSignalEvaluate, signalEvaluator, scope, signalStorage, evaluationResult, evaluatorOptions, signalResult, result, statisticsScope; | ||
var loggingRegion, shouldSignalEvaluate, signalEvaluator, scope, signalStorage, evaluationResult, evaluatorOptions, rc, log, optionsToLog, signalResult, result, statisticsScope; | ||
return __generator(this, function (_e) { | ||
@@ -623,3 +627,4 @@ switch (_e.label) { | ||
}; | ||
this.log(__assign({ level: 'verbose', message: "Signal evaluator options", region: loggingRegion }, evaluatorOptions)); | ||
rc = evaluatorOptions.requestContext, log = evaluatorOptions.log, optionsToLog = __rest(evaluatorOptions, ["requestContext", "log"]); | ||
this.log(__assign({ level: 'verbose', message: "Signal evaluator options", region: loggingRegion }, optionsToLog)); | ||
signalResult = signalEvaluator(evaluatorOptions); | ||
@@ -872,2 +877,3 @@ return [4 /*yield*/, Promise.resolve(signalResult)]; | ||
log: _this.log.bind(_this), | ||
manifest: _this._intentManifest, | ||
}); | ||
@@ -1028,5 +1034,5 @@ }))]; | ||
}); | ||
return this.writeScoring(scope, scoring, previousValue, signalCount > 0); | ||
return this.writeScoring(scope, scoring, previousValue); | ||
}; | ||
OptimizeTracker.prototype.writeScoring = function (scope, scoring, previousScoring, quiet) { | ||
OptimizeTracker.prototype.writeScoring = function (scope, scoring, previousScoring) { | ||
var _a, _b, _c; | ||
@@ -1047,3 +1053,3 @@ return __awaiter(this, void 0, void 0, function () { | ||
level: 'verbose', | ||
message: "[Tracker]: Skipped updating scores in " + scope + "; values identical", | ||
message: scope + " scoring update skipped; values identical", | ||
}); | ||
@@ -1053,11 +1059,8 @@ return [2 /*return*/, scoring]; | ||
} | ||
if (!quiet) { | ||
(_a = this._plugins) === null || _a === void 0 ? void 0 : _a.scoringChange(function (func) { return func(scoring === null || scoring === void 0 ? void 0 : scoring.values); }); | ||
} | ||
this.log(__assign({ level: 'verbose', message: scope + " scoring has been updated" }, scoring.values)); | ||
this.log(__assign({ level: 'verbose', message: scope + " scoring has been updated" }, ((_a = scoring.values) !== null && _a !== void 0 ? _a : { cleared: true }))); | ||
expirationMinutes = (_c = (_b = this._scopeStrategies) === null || _b === void 0 ? void 0 : _b[scope]) === null || _c === void 0 ? void 0 : _c.getExpiration(); | ||
// yolo. swag. git push -f origin master | ||
// xXyolo. swag. git push -f origin masterXx | ||
return [4 /*yield*/, this._storage.scopes.setScoring(scoring, scope, expirationMinutes, previousScoring, scoreDiff)]; | ||
case 1: | ||
// yolo. swag. git push -f origin master | ||
// xXyolo. swag. git push -f origin masterXx | ||
_d.sent(); | ||
@@ -1070,15 +1073,16 @@ return [2 /*return*/, scoring]; | ||
OptimizeTracker.prototype.broadcastScoring = function (scoring) { | ||
var _a; | ||
return __awaiter(this, void 0, void 0, function () { | ||
var value, _a; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
var value, _b; | ||
return __generator(this, function (_c) { | ||
switch (_c.label) { | ||
case 0: | ||
_a = scoring; | ||
if (_a) return [3 /*break*/, 2]; | ||
_b = scoring; | ||
if (_b) return [3 /*break*/, 2]; | ||
return [4 /*yield*/, this.getIntentStrength()]; | ||
case 1: | ||
_a = (_b.sent()); | ||
_b.label = 2; | ||
_b = (_c.sent()); | ||
_c.label = 2; | ||
case 2: | ||
value = _a; | ||
value = _b; | ||
if (this._lastBroadcastScoring && scoresAreEqual_1.scoresAreEqual(this._lastBroadcastScoring, value)) { | ||
@@ -1094,2 +1098,3 @@ // don't broadcast unchanged scores, but do always broadcast at least once | ||
this._lastBroadcastScoring = value; | ||
(_a = this._plugins) === null || _a === void 0 ? void 0 : _a.scoringChange(function (func) { return func(value || null); }); | ||
this._listeners.forEach(function (listener) { return listener(value || null); }); | ||
@@ -1096,0 +1101,0 @@ return [2 /*return*/]; |
@@ -1,8 +0,7 @@ | ||
import { TrackerLogLevels, TrackerPlugin } from '@uniformdev/optimize-tracker-common'; | ||
import { TrackerPlugin } from '@uniformdev/optimize-tracker-common'; | ||
declare type BrowserExtensionOptions = { | ||
logLevelThreshold?: TrackerLogLevels; | ||
/** Whether to listen for events from the browser extension, such as setting scores. Does not affect broadcasting to the extension. */ | ||
disableEventListeners?: boolean; | ||
interfaceObject?: Pick<Window, 'addEventListener' | 'postMessage'>; | ||
}; | ||
export declare const addBrowserExtension: (options?: BrowserExtensionOptions | undefined) => TrackerPlugin; | ||
export {}; |
@@ -38,26 +38,25 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
import { Scope } from '@uniformdev/optimize-common'; | ||
import { isExtensionSetScoreEvent, } from '@uniformdev/optimize-tracker-common'; | ||
import { isLogLevelUnderThreshold } from '../utils'; | ||
import { ExtensionEvents, isExtensionSetScoreMessage, } from '@uniformdev/optimize-tracker-common'; | ||
var isBrowser = typeof window !== 'undefined'; | ||
export var addBrowserExtension = function (options) { | ||
var trackerOptions; | ||
var _a = options || {}, disableEventListeners = _a.disableEventListeners, interfaceObject = _a.interfaceObject, _b = _a.logLevelThreshold, logLevelThreshold = _b === void 0 ? 'verbose' : _b; | ||
var resolvedInterfaceObject = interfaceObject || (typeof window !== 'undefined' ? window : undefined); | ||
var disableEventListeners = (options || {}).disableEventListeners; | ||
if (!disableEventListeners) { | ||
if (typeof resolvedInterfaceObject !== 'undefined') { | ||
resolvedInterfaceObject.addEventListener('message', function (event) { return __awaiter(void 0, void 0, void 0, function () { | ||
var data, scores; | ||
if (isBrowser) { | ||
window.addEventListener('message', function (event) { return __awaiter(void 0, void 0, void 0, function () { | ||
var scores; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
data = event.data; | ||
if (!data) { | ||
if (!event.data) { | ||
return [2 /*return*/]; | ||
} | ||
if (!isExtensionSetScoreEvent(data)) return [3 /*break*/, 3]; | ||
scores = JSON.parse(data.scores); | ||
if (!isExtensionSetScoreMessage(event.data)) return [3 /*break*/, 3]; | ||
scores = event.data.score; | ||
if (!scores) return [3 /*break*/, 3]; | ||
return [4 /*yield*/, (trackerOptions === null || trackerOptions === void 0 ? void 0 : trackerOptions.setIntentStrength(Scope.Visit, {}))]; | ||
console.warn('[Uniform] browser extension has set intent scores. Note that this sets all scores to the visit scope and clears any existing visitor values.', scores); | ||
return [4 /*yield*/, (trackerOptions === null || trackerOptions === void 0 ? void 0 : trackerOptions.setIntentStrength(Scope.Visitor, {}))]; | ||
case 1: | ||
_a.sent(); | ||
return [4 /*yield*/, (trackerOptions === null || trackerOptions === void 0 ? void 0 : trackerOptions.setIntentStrength(Scope.Visitor, scores))]; | ||
return [4 /*yield*/, (trackerOptions === null || trackerOptions === void 0 ? void 0 : trackerOptions.setIntentStrength(Scope.Visit, scores))]; | ||
case 2: | ||
@@ -76,17 +75,29 @@ _a.sent(); | ||
trackerOptions = options; | ||
if (isBrowser) { | ||
window.postMessage({ | ||
type: ExtensionEvents.Hello, | ||
manifest: options.manifest, | ||
}, window.location.origin); | ||
} | ||
}, | ||
onLogMessage: function (options) { | ||
if (typeof resolvedInterfaceObject !== 'undefined') { | ||
var level = options.level; | ||
var shouldOutput = isLogLevelUnderThreshold(logLevelThreshold, level); | ||
if (!shouldOutput) { | ||
return; | ||
} | ||
resolvedInterfaceObject === null || resolvedInterfaceObject === void 0 ? void 0 : resolvedInterfaceObject.postMessage({ | ||
type: 'log', | ||
message: JSON.stringify(options), | ||
}, '*'); | ||
if (isBrowser) { | ||
window.postMessage({ | ||
type: ExtensionEvents.Log, | ||
message: options, | ||
}, window.location.origin); | ||
} | ||
}, | ||
onScoringChange: function (score) { | ||
if (!score) { | ||
return; | ||
} | ||
if (isBrowser) { | ||
window.postMessage({ | ||
type: ExtensionEvents.Score, | ||
score: score, | ||
}, window.location.origin); | ||
} | ||
}, | ||
}; | ||
}; |
@@ -37,3 +37,3 @@ var __rest = (this && this.__rest) || function (s, e) { | ||
else if (level === 'verbose') { | ||
style = 'color: gray; font-size: 0.9em;'; | ||
style = 'font-size: 0.8em;'; | ||
} | ||
@@ -40,0 +40,0 @@ var consoleMessage = "%c[Uniform] " + message; |
@@ -12,3 +12,2 @@ import { TrackerPlugin, LogMessageFunction, TrackFunction, TrackerPlugins, InitializeFunction, ScoringChangeListener } from '@uniformdev/optimize-tracker-common'; | ||
find<TFunction>(type: keyof TrackerPlugin): TFunction[]; | ||
findSingle<TFunction>(type: keyof TrackerPlugin): TFunction; | ||
} |
@@ -90,11 +90,4 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
}; | ||
OptimizePluginLoader.prototype.findSingle = function (type) { | ||
var _a = this.find(type), firstPlugin = _a[0], rest = _a.slice(1); | ||
if (rest && rest.length) { | ||
console.log("Multiple plugins registered for " + type); | ||
} | ||
return firstPlugin; | ||
}; | ||
return OptimizePluginLoader; | ||
}()); | ||
export { OptimizePluginLoader }; |
@@ -59,5 +59,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
url = new URL(requestContext.url); | ||
log === null || log === void 0 ? void 0 : log({ level: 'verbose', message: 'Checking URL', region: loggingRegion, url: url, criteria: signal.path }); | ||
log === null || log === void 0 ? void 0 : log({ | ||
level: 'verbose', | ||
message: 'Checking URL', | ||
region: loggingRegion, | ||
url: url.toString(), | ||
criteria: signal.path, | ||
}); | ||
if (isStringMatch(url.pathname, signal.path)) { | ||
log === null || log === void 0 ? void 0 : log({ level: 'info', message: 'URL is a match', region: loggingRegion, url: url, criteria: signal.path }); | ||
log === null || log === void 0 ? void 0 : log({ | ||
level: 'info', | ||
message: 'URL is a match', | ||
region: loggingRegion, | ||
url: url.toString(), | ||
criteria: signal.path, | ||
}); | ||
strength = Number(signal.str); | ||
@@ -64,0 +76,0 @@ } |
@@ -20,6 +20,18 @@ import { isPageVisitedSignal, isStringMatch, SignalType } from '@uniformdev/optimize-common'; | ||
var url = new URL(requestContext.url); | ||
log === null || log === void 0 ? void 0 : log({ level: 'verbose', message: 'Checking URL', region: loggingRegion, url: url, criteria: signal.path }); | ||
log === null || log === void 0 ? void 0 : log({ | ||
level: 'verbose', | ||
message: 'Checking URL', | ||
region: loggingRegion, | ||
url: url.toString(), | ||
criteria: signal.path, | ||
}); | ||
var strength; | ||
if (isStringMatch(url.pathname, signal.path)) { | ||
log === null || log === void 0 ? void 0 : log({ level: 'info', message: 'URL is a match', region: loggingRegion, url: url, criteria: signal.path }); | ||
log === null || log === void 0 ? void 0 : log({ | ||
level: 'info', | ||
message: 'URL is a match', | ||
region: loggingRegion, | ||
url: url.toString(), | ||
criteria: signal.path, | ||
}); | ||
strength = Number(signal.str); | ||
@@ -32,3 +44,3 @@ } | ||
region: loggingRegion, | ||
url: url, | ||
url: url.toString(), | ||
criteria: signal.path, | ||
@@ -35,0 +47,0 @@ }); |
@@ -20,3 +20,3 @@ import { isQueryStringSignal, isStringMatch, SignalType } from '@uniformdev/optimize-common'; | ||
var url = new URL(requestContext.url); | ||
log === null || log === void 0 ? void 0 : log({ level: 'verbose', message: 'Checking URL', region: loggingRegion, url: url }); | ||
log === null || log === void 0 ? void 0 : log({ level: 'verbose', message: 'Checking URL', region: loggingRegion, url: url.toString() }); | ||
var parameterValue = url.searchParams.get(signal.parameter); | ||
@@ -27,7 +27,12 @@ log === null || log === void 0 ? void 0 : log({ | ||
region: loggingRegion, | ||
url: url, | ||
url: url.toString(), | ||
parameter: signal.parameter, | ||
}); | ||
if (!parameterValue) { | ||
log === null || log === void 0 ? void 0 : log({ level: 'verbose', message: 'Query string value not defined', region: loggingRegion, url: url }); | ||
log === null || log === void 0 ? void 0 : log({ | ||
level: 'verbose', | ||
message: 'Query string value not defined', | ||
region: loggingRegion, | ||
url: url.toString(), | ||
}); | ||
return undefined; | ||
@@ -34,0 +39,0 @@ } |
@@ -48,2 +48,13 @@ var __assign = (this && this.__assign) || function () { | ||
}; | ||
var __rest = (this && this.__rest) || function (s, e) { | ||
var t = {}; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) | ||
t[p] = s[p]; | ||
if (s != null && typeof Object.getOwnPropertySymbols === "function") | ||
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { | ||
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) | ||
t[p[i]] = s[p[i]]; | ||
} | ||
return t; | ||
}; | ||
import { IntentTagStrength, Scope, SignalFrequency, SignalType, } from '@uniformdev/optimize-common'; | ||
@@ -191,12 +202,5 @@ import { decayByDayStrategy } from './decay/decayByDayStrategy'; | ||
return __awaiter(this, void 0, void 0, function () { | ||
var blankSlate; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
blankSlate = { | ||
strategy: 'blank', | ||
values: {}, | ||
updated: new Date().valueOf(), | ||
}; | ||
return [4 /*yield*/, this.applyScoringStrategy(scope, blankSlate, valueToSet, 1)]; | ||
case 0: return [4 /*yield*/, this.applyScoringStrategy(scope, undefined, valueToSet, 1)]; | ||
case 1: | ||
@@ -242,3 +246,3 @@ _a.sent(); | ||
if (!somethingWasRemoved_1) return [3 /*break*/, 4]; | ||
return [4 /*yield*/, this.writeScoring(currentScope, __assign(__assign({}, currentScoring), { values: updatedScoring_1 }), currentScoring, options === null || options === void 0 ? void 0 : options.quiet)]; | ||
return [4 /*yield*/, this.writeScoring(currentScope, __assign(__assign({}, currentScoring), { values: updatedScoring_1 }), currentScoring)]; | ||
case 2: | ||
@@ -567,3 +571,3 @@ _a.sent(); | ||
return __awaiter(this, void 0, void 0, function () { | ||
var loggingRegion, shouldSignalEvaluate, signalEvaluator, scope, signalStorage, evaluationResult, evaluatorOptions, signalResult, result, statisticsScope; | ||
var loggingRegion, shouldSignalEvaluate, signalEvaluator, scope, signalStorage, evaluationResult, evaluatorOptions, rc, log, optionsToLog, signalResult, result, statisticsScope; | ||
return __generator(this, function (_e) { | ||
@@ -620,3 +624,4 @@ switch (_e.label) { | ||
}; | ||
this.log(__assign({ level: 'verbose', message: "Signal evaluator options", region: loggingRegion }, evaluatorOptions)); | ||
rc = evaluatorOptions.requestContext, log = evaluatorOptions.log, optionsToLog = __rest(evaluatorOptions, ["requestContext", "log"]); | ||
this.log(__assign({ level: 'verbose', message: "Signal evaluator options", region: loggingRegion }, optionsToLog)); | ||
signalResult = signalEvaluator(evaluatorOptions); | ||
@@ -869,2 +874,3 @@ return [4 /*yield*/, Promise.resolve(signalResult)]; | ||
log: _this.log.bind(_this), | ||
manifest: _this._intentManifest, | ||
}); | ||
@@ -1025,5 +1031,5 @@ }))]; | ||
}); | ||
return this.writeScoring(scope, scoring, previousValue, signalCount > 0); | ||
return this.writeScoring(scope, scoring, previousValue); | ||
}; | ||
OptimizeTracker.prototype.writeScoring = function (scope, scoring, previousScoring, quiet) { | ||
OptimizeTracker.prototype.writeScoring = function (scope, scoring, previousScoring) { | ||
var _a, _b, _c; | ||
@@ -1044,3 +1050,3 @@ return __awaiter(this, void 0, void 0, function () { | ||
level: 'verbose', | ||
message: "[Tracker]: Skipped updating scores in " + scope + "; values identical", | ||
message: scope + " scoring update skipped; values identical", | ||
}); | ||
@@ -1050,11 +1056,8 @@ return [2 /*return*/, scoring]; | ||
} | ||
if (!quiet) { | ||
(_a = this._plugins) === null || _a === void 0 ? void 0 : _a.scoringChange(function (func) { return func(scoring === null || scoring === void 0 ? void 0 : scoring.values); }); | ||
} | ||
this.log(__assign({ level: 'verbose', message: scope + " scoring has been updated" }, scoring.values)); | ||
this.log(__assign({ level: 'verbose', message: scope + " scoring has been updated" }, ((_a = scoring.values) !== null && _a !== void 0 ? _a : { cleared: true }))); | ||
expirationMinutes = (_c = (_b = this._scopeStrategies) === null || _b === void 0 ? void 0 : _b[scope]) === null || _c === void 0 ? void 0 : _c.getExpiration(); | ||
// yolo. swag. git push -f origin master | ||
// xXyolo. swag. git push -f origin masterXx | ||
return [4 /*yield*/, this._storage.scopes.setScoring(scoring, scope, expirationMinutes, previousScoring, scoreDiff)]; | ||
case 1: | ||
// yolo. swag. git push -f origin master | ||
// xXyolo. swag. git push -f origin masterXx | ||
_d.sent(); | ||
@@ -1067,15 +1070,16 @@ return [2 /*return*/, scoring]; | ||
OptimizeTracker.prototype.broadcastScoring = function (scoring) { | ||
var _a; | ||
return __awaiter(this, void 0, void 0, function () { | ||
var value, _a; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
var value, _b; | ||
return __generator(this, function (_c) { | ||
switch (_c.label) { | ||
case 0: | ||
_a = scoring; | ||
if (_a) return [3 /*break*/, 2]; | ||
_b = scoring; | ||
if (_b) return [3 /*break*/, 2]; | ||
return [4 /*yield*/, this.getIntentStrength()]; | ||
case 1: | ||
_a = (_b.sent()); | ||
_b.label = 2; | ||
_b = (_c.sent()); | ||
_c.label = 2; | ||
case 2: | ||
value = _a; | ||
value = _b; | ||
if (this._lastBroadcastScoring && scoresAreEqual(this._lastBroadcastScoring, value)) { | ||
@@ -1091,2 +1095,3 @@ // don't broadcast unchanged scores, but do always broadcast at least once | ||
this._lastBroadcastScoring = value; | ||
(_a = this._plugins) === null || _a === void 0 ? void 0 : _a.scoringChange(function (func) { return func(value || null); }); | ||
this._listeners.forEach(function (listener) { return listener(value || null); }); | ||
@@ -1093,0 +1098,0 @@ return [2 /*return*/]; |
{ | ||
"name": "@uniformdev/optimize-tracker", | ||
"version": "5.0.2-alpha.32+e6634f2", | ||
"version": "5.0.2-alpha.41+2d0e464", | ||
"description": "Uniform Optimize tracker", | ||
@@ -33,4 +33,4 @@ "repository": { | ||
"dependencies": { | ||
"@uniformdev/optimize-common": "^5.0.2-alpha.32+e6634f2", | ||
"@uniformdev/optimize-tracker-common": "^5.0.2-alpha.32+e6634f2", | ||
"@uniformdev/optimize-common": "^5.0.2-alpha.41+2d0e464", | ||
"@uniformdev/optimize-tracker-common": "^5.0.2-alpha.41+2d0e464", | ||
"parse5": "^6.0.1", | ||
@@ -62,3 +62,3 @@ "uuid": ">=7.0.0" | ||
}, | ||
"gitHead": "e6634f25fed351c7c7763ab82b5dd4d7d15c3084" | ||
"gitHead": "2d0e464c4e786ab294b5a0c3ca8b18a6723fce97" | ||
} |
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
417491
8331