@surfside/ads-core 2.0.1 → 2.0.2
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/README.md +15 -15
- package/lib/cjs/Api.js +195 -0
- package/lib/cjs/Api.js.map +1 -0
- package/lib/cjs/helpers/Generator.js +50 -0
- package/lib/cjs/helpers/Generator.js.map +1 -0
- package/lib/cjs/helpers/Handlebars.js +270 -0
- package/lib/cjs/helpers/Handlebars.js.map +1 -0
- package/lib/cjs/helpers/NativeRequestBuilder.js +174 -0
- package/lib/cjs/helpers/NativeRequestBuilder.js.map +1 -0
- package/lib/cjs/helpers/RequestBuilder.js +160 -0
- package/lib/cjs/helpers/RequestBuilder.js.map +1 -0
- package/lib/cjs/helpers/TryGet.js +14 -0
- package/lib/cjs/helpers/TryGet.js.map +1 -0
- package/lib/cjs/helpers/Window.js +24 -0
- package/lib/cjs/helpers/Window.js.map +1 -0
- package/lib/cjs/helpers/index.js +24 -0
- package/lib/cjs/helpers/index.js.map +1 -0
- package/lib/cjs/helpers/response/Banner.js +4 -0
- package/lib/cjs/helpers/response/Banner.js.map +1 -0
- package/lib/cjs/helpers/response/BuiltResponse.js +27 -0
- package/lib/cjs/helpers/response/BuiltResponse.js.map +1 -0
- package/lib/cjs/helpers/response/Carousel.js +282 -0
- package/lib/cjs/helpers/response/Carousel.js.map +1 -0
- package/lib/cjs/helpers/response/Clickthrough.js +24 -0
- package/lib/cjs/helpers/response/Clickthrough.js.map +1 -0
- package/lib/cjs/helpers/response/ProductCard.js +198 -0
- package/lib/cjs/helpers/response/ProductCard.js.map +1 -0
- package/lib/cjs/helpers/response/Video.js +4 -0
- package/lib/cjs/helpers/response/Video.js.map +1 -0
- package/lib/cjs/helpers/response/index.js +23 -0
- package/lib/cjs/helpers/response/index.js.map +1 -0
- package/lib/cjs/index.js +21 -3488
- package/lib/cjs/index.js.map +1 -54
- package/lib/cjs/models/dynamic/DynamicZone.js +12 -0
- package/lib/cjs/models/dynamic/DynamicZone.js.map +1 -0
- package/lib/cjs/models/dynamic/index.js +18 -0
- package/lib/cjs/models/dynamic/index.js.map +1 -0
- package/lib/cjs/models/index.js +22 -0
- package/lib/cjs/models/index.js.map +1 -0
- package/lib/cjs/models/retail/Configuration.js +10 -0
- package/lib/cjs/models/retail/Configuration.js.map +1 -0
- package/lib/cjs/models/retail/Product.js +4 -0
- package/lib/cjs/models/retail/Product.js.map +1 -0
- package/lib/cjs/models/retail/Recommended.js +3 -0
- package/lib/cjs/models/retail/Recommended.js.map +1 -0
- package/lib/cjs/models/retail/index.js +20 -0
- package/lib/cjs/models/retail/index.js.map +1 -0
- package/lib/cjs/models/rtb/BidRequest.js +20 -0
- package/lib/cjs/models/rtb/BidRequest.js.map +1 -0
- package/lib/cjs/models/rtb/BidResponse.js +3 -0
- package/lib/cjs/models/rtb/BidResponse.js.map +1 -0
- package/lib/cjs/models/rtb/NativeRequest.js +122 -0
- package/lib/cjs/models/rtb/NativeRequest.js.map +1 -0
- package/lib/cjs/models/rtb/NativeResponse.js +26 -0
- package/lib/cjs/models/rtb/NativeResponse.js.map +1 -0
- package/lib/cjs/models/rtb/index.js +21 -0
- package/lib/cjs/models/rtb/index.js.map +1 -0
- package/lib/cjs/models/tracking/Geo.js +3 -0
- package/lib/cjs/models/tracking/Geo.js.map +1 -0
- package/lib/cjs/models/tracking/index.js +18 -0
- package/lib/cjs/models/tracking/index.js.map +1 -0
- package/lib/cjs/models/vast/Vast.js +4 -0
- package/lib/cjs/models/vast/Vast.js.map +1 -0
- package/lib/cjs/models/vast/index.js +18 -0
- package/lib/cjs/models/vast/index.js.map +1 -0
- package/lib/cjs/services/Bidder.js +128 -0
- package/lib/cjs/services/Bidder.js.map +1 -0
- package/lib/cjs/services/Configuration.js +93 -0
- package/lib/cjs/services/Configuration.js.map +1 -0
- package/lib/cjs/services/Device.js +236 -0
- package/lib/cjs/services/Device.js.map +1 -0
- package/lib/cjs/services/Dynamic.js +129 -0
- package/lib/cjs/services/Dynamic.js.map +1 -0
- package/lib/cjs/services/Geo.js +35 -0
- package/lib/cjs/services/Geo.js.map +1 -0
- package/lib/cjs/services/Logger.js +57 -0
- package/lib/cjs/services/Logger.js.map +1 -0
- package/lib/cjs/services/Memoization.js +17 -0
- package/lib/cjs/services/Memoization.js.map +1 -0
- package/lib/cjs/services/Product.js +127 -0
- package/lib/cjs/services/Product.js.map +1 -0
- package/lib/cjs/services/Recommender.js +83 -0
- package/lib/cjs/services/Recommender.js.map +1 -0
- package/lib/cjs/services/Result.js +220 -0
- package/lib/cjs/services/Result.js.map +1 -0
- package/lib/cjs/services/Template.js +43 -0
- package/lib/cjs/services/Template.js.map +1 -0
- package/lib/cjs/services/index.js +28 -0
- package/lib/cjs/services/index.js.map +1 -0
- package/lib/cjs/services/mock/Bidder.js +3 -0
- package/lib/cjs/services/mock/Bidder.js.map +1 -0
- package/lib/cjs/services/mock/index.js +18 -0
- package/lib/cjs/services/mock/index.js.map +1 -0
- package/lib/esm/Api.js +183 -0
- package/lib/esm/Api.js.map +1 -0
- package/lib/esm/helpers/Generator.js +42 -0
- package/lib/esm/helpers/Generator.js.map +1 -0
- package/lib/esm/helpers/Handlebars.js +251 -0
- package/lib/esm/helpers/Handlebars.js.map +1 -0
- package/lib/esm/helpers/NativeRequestBuilder.js +169 -0
- package/lib/esm/helpers/NativeRequestBuilder.js.map +1 -0
- package/lib/esm/helpers/RequestBuilder.js +157 -0
- package/lib/esm/helpers/RequestBuilder.js.map +1 -0
- package/lib/esm/helpers/TryGet.js +10 -0
- package/lib/esm/helpers/TryGet.js.map +1 -0
- package/lib/esm/helpers/Window.js +20 -0
- package/lib/esm/helpers/Window.js.map +1 -0
- package/lib/esm/helpers/index.js +8 -0
- package/lib/esm/helpers/index.js.map +1 -0
- package/lib/esm/helpers/response/Banner.js +3 -0
- package/lib/esm/helpers/response/Banner.js.map +1 -0
- package/lib/esm/helpers/response/BuiltResponse.js +22 -0
- package/lib/esm/helpers/response/BuiltResponse.js.map +1 -0
- package/lib/esm/helpers/response/Carousel.js +273 -0
- package/lib/esm/helpers/response/Carousel.js.map +1 -0
- package/lib/esm/helpers/response/Clickthrough.js +20 -0
- package/lib/esm/helpers/response/Clickthrough.js.map +1 -0
- package/lib/esm/helpers/response/ProductCard.js +189 -0
- package/lib/esm/helpers/response/ProductCard.js.map +1 -0
- package/lib/esm/helpers/response/Video.js +3 -0
- package/lib/esm/helpers/response/Video.js.map +1 -0
- package/lib/esm/helpers/response/index.js +7 -0
- package/lib/esm/helpers/response/index.js.map +1 -0
- package/lib/esm/index.js +5 -3460
- package/lib/esm/index.js.map +1 -54
- package/lib/esm/models/dynamic/DynamicZone.js +11 -0
- package/lib/esm/models/dynamic/DynamicZone.js.map +1 -0
- package/lib/esm/models/dynamic/index.js +2 -0
- package/lib/esm/models/dynamic/index.js.map +1 -0
- package/lib/esm/models/index.js +6 -0
- package/lib/esm/models/index.js.map +1 -0
- package/lib/esm/models/retail/Configuration.js +9 -0
- package/lib/esm/models/retail/Configuration.js.map +1 -0
- package/lib/esm/models/retail/Product.js +3 -0
- package/lib/esm/models/retail/Product.js.map +1 -0
- package/lib/esm/models/retail/Recommended.js +2 -0
- package/lib/esm/models/retail/Recommended.js.map +1 -0
- package/lib/esm/models/retail/index.js +4 -0
- package/lib/esm/models/retail/index.js.map +1 -0
- package/lib/esm/models/rtb/BidRequest.js +17 -0
- package/lib/esm/models/rtb/BidRequest.js.map +1 -0
- package/lib/esm/models/rtb/BidResponse.js +2 -0
- package/lib/esm/models/rtb/BidResponse.js.map +1 -0
- package/lib/esm/models/rtb/NativeRequest.js +119 -0
- package/lib/esm/models/rtb/NativeRequest.js.map +1 -0
- package/lib/esm/models/rtb/NativeResponse.js +23 -0
- package/lib/esm/models/rtb/NativeResponse.js.map +1 -0
- package/lib/esm/models/rtb/index.js +5 -0
- package/lib/esm/models/rtb/index.js.map +1 -0
- package/lib/esm/models/tracking/Geo.js +2 -0
- package/lib/esm/models/tracking/Geo.js.map +1 -0
- package/lib/esm/models/tracking/index.js +2 -0
- package/lib/esm/models/tracking/index.js.map +1 -0
- package/lib/esm/models/vast/Vast.js +3 -0
- package/lib/esm/models/vast/Vast.js.map +1 -0
- package/lib/esm/models/vast/index.js +2 -0
- package/lib/esm/models/vast/index.js.map +1 -0
- package/lib/esm/services/Bidder.js +119 -0
- package/lib/esm/services/Bidder.js.map +1 -0
- package/lib/esm/services/Configuration.js +56 -0
- package/lib/esm/services/Configuration.js.map +1 -0
- package/lib/esm/services/Device.js +232 -0
- package/lib/esm/services/Device.js.map +1 -0
- package/lib/esm/services/Dynamic.js +120 -0
- package/lib/esm/services/Dynamic.js.map +1 -0
- package/lib/esm/services/Geo.js +30 -0
- package/lib/esm/services/Geo.js.map +1 -0
- package/lib/esm/services/Logger.js +52 -0
- package/lib/esm/services/Logger.js.map +1 -0
- package/lib/esm/services/Memoization.js +13 -0
- package/lib/esm/services/Memoization.js.map +1 -0
- package/lib/esm/services/Product.js +120 -0
- package/lib/esm/services/Product.js.map +1 -0
- package/lib/esm/services/Recommender.js +78 -0
- package/lib/esm/services/Recommender.js.map +1 -0
- package/lib/esm/services/Result.js +199 -0
- package/lib/esm/services/Result.js.map +1 -0
- package/lib/esm/services/Template.js +38 -0
- package/lib/esm/services/Template.js.map +1 -0
- package/lib/esm/services/index.js +12 -0
- package/lib/esm/services/index.js.map +1 -0
- package/lib/esm/services/mock/Bidder.js +2 -0
- package/lib/esm/services/mock/Bidder.js.map +1 -0
- package/lib/esm/services/mock/index.js +2 -0
- package/lib/esm/services/mock/index.js.map +1 -0
- package/lib/types/Api.d.ts +5 -5
- package/lib/types/helpers/Handlebars.d.ts +3 -3
- package/lib/types/helpers/NativeRequestBuilder.d.ts +1 -1
- package/lib/types/helpers/RequestBuilder.d.ts +1 -1
- package/lib/types/helpers/TryGet.d.ts +1 -1
- package/lib/types/helpers/Window.d.ts +2 -2
- package/lib/types/helpers/response/Banner.d.ts +1 -1
- package/lib/types/helpers/response/BuiltResponse.d.ts +1 -1
- package/lib/types/helpers/response/Carousel.d.ts +1 -1
- package/lib/types/helpers/response/Clickthrough.d.ts +1 -1
- package/lib/types/helpers/response/ProductCard.d.ts +3 -3
- package/lib/types/helpers/response/Video.d.ts +2 -2
- package/lib/types/services/Bidder.d.ts +3 -3
- package/lib/types/services/Configuration.d.ts +1 -1
- package/lib/types/services/Dynamic.d.ts +6 -6
- package/lib/types/services/Geo.d.ts +1 -1
- package/lib/types/services/Product.d.ts +1 -1
- package/lib/types/services/Template.d.ts +3 -3
- package/package.json +41 -33
- package/lib/index.js +0 -1
- package/lib/index.js.map +0 -1
- package/lib/types/constant-values/index.d.ts +0 -46
- package/lib/types/errors/index.d.ts +0 -3
- package/lib/types/helpers/generators/CollectN.d.ts +0 -2
- package/lib/types/helpers/generators/index.d.ts +0 -1
- package/lib/types/helpers/handlebars/index.d.ts +0 -119
- package/lib/types/helpers/requests/RequestBuilder.d.ts +0 -124
- package/lib/types/helpers/requests/SimpleBannerRequest.d.ts +0 -26
- package/lib/types/helpers/requests/index.d.ts +0 -2
- package/lib/types/helpers/responses/BuildBannerResponse.d.ts +0 -10
- package/lib/types/helpers/responses/BuildNativeResponse.d.ts +0 -21
- package/lib/types/helpers/responses/BuildVideoResponse.d.ts +0 -0
- package/lib/types/helpers/responses/ClickthroughHelpers.d.ts +0 -2
- package/lib/types/helpers/responses/VastHelpers.d.ts +0 -4
- package/lib/types/helpers/responses/index.d.ts +0 -4
- package/lib/types/middleware/DeviceMiddleware.d.ts +0 -3
- package/lib/types/middleware/GeoMiddleware.d.ts +0 -3
- package/lib/types/middleware/IdentityMiddleware.d.ts +0 -4
- package/lib/types/middleware/index.d.ts +0 -3
- package/lib/types/models/retail/IProductInformation.d.ts +0 -37
- package/lib/types/models/retail/IPublisherConfiguration.d.ts +0 -64
- package/lib/types/models/retail/IRecommenderResponse.d.ts +0 -10
- package/lib/types/models/rtb/IBidRequest.d.ts +0 -399
- package/lib/types/models/rtb/IBidResponse.d.ts +0 -47
- package/lib/types/models/rtb/native/Constants.d.ts +0 -60
- package/lib/types/models/rtb/native/INativeRequest.d.ts +0 -54
- package/lib/types/models/rtb/native/INativeResponse.d.ts +0 -60
- package/lib/types/models/rtb/native/NativeConstants.d.ts +0 -120
- package/lib/types/models/rtb/native/NativeRequestBuilder.d.ts +0 -158
- package/lib/types/models/rtb/native/index.d.ts +0 -4
- package/lib/types/models/tracking/IEvents.d.ts +0 -82
- package/lib/types/models/tracking/IGeoContext.d.ts +0 -14
- package/lib/types/models/tracking/IUserID.d.ts +0 -1
- package/lib/types/services/OverrideService.d.ts +0 -10
- package/lib/types/services/logger/ILoggerService.d.ts +0 -39
- package/lib/types/services/logger/LocalLoggerService.d.ts +0 -19
- package/lib/types/services/logger/index.d.ts +0 -2
- package/lib/types/services/product-feed/IProductFeedService.d.ts +0 -5
- package/lib/types/services/product-feed/SurfsideProductFeedService.d.ts +0 -11
- package/lib/types/services/product-feed/index.d.ts +0 -2
- package/lib/types/services/recommender/IRecommenderService.d.ts +0 -47
- package/lib/types/services/recommender/SurfsideRecommenderService.d.ts +0 -31
- package/lib/types/services/recommender/index.d.ts +0 -2
- package/lib/types/services/rtb/bidder/IBidderService.d.ts +0 -12
- package/lib/types/services/rtb/bidder/SurfsideBidderService.d.ts +0 -28
- package/lib/types/services/rtb/bidder/index.d.ts +0 -2
- package/lib/types/services/rtb/configuration/IConfigurationService.d.ts +0 -14
- package/lib/types/services/rtb/configuration/SurfsideConfigurationService.d.ts +0 -29
- package/lib/types/services/rtb/configuration/index.d.ts +0 -2
- package/lib/types/services/rtb/index.d.ts +0 -2
- package/lib/types/services/tracking/device/DeviceOverrideService.d.ts +0 -8
- package/lib/types/services/tracking/device/IDeviceService.d.ts +0 -4
- package/lib/types/services/tracking/device/SurfsideDeviceService.d.ts +0 -16
- package/lib/types/services/tracking/device/index.d.ts +0 -3
- package/lib/types/services/tracking/events/IEventService.d.ts +0 -5
- package/lib/types/services/tracking/events/SurfsideEventService.d.ts +0 -42
- package/lib/types/services/tracking/events/index.d.ts +0 -2
- package/lib/types/services/tracking/geo/GeoOverrideService.d.ts +0 -8
- package/lib/types/services/tracking/geo/IGeoService.d.ts +0 -12
- package/lib/types/services/tracking/geo/SurfsideGeoService.d.ts +0 -7
- package/lib/types/services/tracking/geo/index.d.ts +0 -3
- package/lib/types/services/tracking/index.d.ts +0 -4
- package/lib/types/services/tracking/user/IUserIDService.d.ts +0 -4
- package/lib/types/services/tracking/user/SurfsideUserIDService.d.ts +0 -7
- package/lib/types/services/tracking/user/UserOverrideService.d.ts +0 -8
- package/lib/types/services/tracking/user/index.d.ts +0 -3
- package/lib/types/utils/Protocol.d.ts +0 -1
- package/lib/types/utils/Rendering.d.ts +0 -44
- package/lib/types/utils/index.d.ts +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Product.js","sourceRoot":"src/","sources":["services/Product.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GenerateTopProducts = GenerateTopProducts;
|
|
4
|
+
exports.GenerateForYou = GenerateForYou;
|
|
5
|
+
exports.GeneratePreviousPurchases = GeneratePreviousPurchases;
|
|
6
|
+
const Logger_1 = require("./Logger");
|
|
7
|
+
const Result_1 = require("./Result");
|
|
8
|
+
async function* GenerateTopProducts(logger, productFeed, url, accountId, siteId, locationId) {
|
|
9
|
+
const log = (0, Logger_1.Ctx)(logger)?.with('GenerateTopProducts').with(accountId).with(siteId).with(locationId);
|
|
10
|
+
log?.info('Generating top products');
|
|
11
|
+
yield* generateProductRecommendation(logger, productFeed, url, accountId, siteId, locationId, undefined, 'top-products');
|
|
12
|
+
}
|
|
13
|
+
async function* GenerateForYou(logger, productFeed, url, accountId, siteId, locationId, userId) {
|
|
14
|
+
const log = (0, Logger_1.Ctx)(logger)?.with('GenerateForYou').with(accountId).with(siteId).with(locationId).with(userId);
|
|
15
|
+
log?.info('Generating for you');
|
|
16
|
+
yield* generateProductRecommendation(logger, productFeed, url, accountId, siteId, locationId, userId, 'for-you');
|
|
17
|
+
}
|
|
18
|
+
async function* GeneratePreviousPurchases(logger, productFeed, url, accountId, siteId, locationId, userId) {
|
|
19
|
+
const log = (0, Logger_1.Ctx)(logger)
|
|
20
|
+
?.with('GeneratePreviousPurchases')
|
|
21
|
+
.with(accountId)
|
|
22
|
+
.with(siteId)
|
|
23
|
+
.with(locationId)
|
|
24
|
+
.with(userId);
|
|
25
|
+
log?.info('Generating previous purchases');
|
|
26
|
+
yield* generateProductRecommendation(log, productFeed, url, accountId, siteId, locationId, userId, 'buy-again');
|
|
27
|
+
}
|
|
28
|
+
async function* generateProductRecommendation(logger, productFeed, url, accountId, siteId, locationId, userId, type) {
|
|
29
|
+
const log = (0, Logger_1.Ctx)(logger)?.with('generatreProductRecommendation');
|
|
30
|
+
log?.debug('Generating product recommendation');
|
|
31
|
+
const recommendations = await fetchRecommendations(log, url, accountId, siteId, locationId, userId, type);
|
|
32
|
+
if (!recommendations.ok) {
|
|
33
|
+
log?.error(recommendations.error);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
yield* generateProduct(log, productFeed, accountId, locationId, recommendations.value);
|
|
37
|
+
log?.debug('out of recommendations');
|
|
38
|
+
}
|
|
39
|
+
const fetchRecommendations = async (logger, url, accountId, siteId, locationId, userId, type) => {
|
|
40
|
+
const log = (0, Logger_1.Ctx)(logger)?.with('fetchRecommendations');
|
|
41
|
+
log?.debug('Fetching recommendations');
|
|
42
|
+
const key = `accountId=${accountId}&siteId=${siteId}&locationId=${locationId}&userId=${userId ?? 'null'}`;
|
|
43
|
+
try {
|
|
44
|
+
const results = await fetch(`${url}/r/${type}?${key}&limit=100`);
|
|
45
|
+
if (!results.ok) {
|
|
46
|
+
return (0, Result_1.Err)(new Error('Failed to load recommendations. Service returned ' + results.status));
|
|
47
|
+
}
|
|
48
|
+
/* On error, the result will be IRecommenderResponse.
|
|
49
|
+
* On success, it will just be a set of recommended products */
|
|
50
|
+
const recommendations = await results.json();
|
|
51
|
+
const error = recommendations.error;
|
|
52
|
+
if (error !== undefined) {
|
|
53
|
+
return (0, Result_1.Err)(new Error(error));
|
|
54
|
+
}
|
|
55
|
+
return (0, Result_1.Ok)(recommendations);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
return (0, Result_1.Err)(err);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
async function* generateProduct(logger, productFeed, accountId, locationId, results) {
|
|
62
|
+
const log = (0, Logger_1.Ctx)(logger)?.with('generateProduct');
|
|
63
|
+
log?.debug('generating product info');
|
|
64
|
+
for (const item of results) {
|
|
65
|
+
const itemId = item.item_id;
|
|
66
|
+
try {
|
|
67
|
+
log?.debug('itemId', itemId);
|
|
68
|
+
const product = await productFeed(itemId);
|
|
69
|
+
log?.debug('product', itemId, product);
|
|
70
|
+
if (product.ok) {
|
|
71
|
+
yield product.value;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
log?.warn('item was missing from product feed', itemId);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
log?.warn('couldn\'t get product', err);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
log?.info('no more products. Exiting');
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=Recommender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Recommender.js","sourceRoot":"src/","sources":["services/Recommender.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NoValueError = exports.ResultStream = exports.AsyncPipe = exports.Pipe = exports.MultipleErrorsError = exports.AnyFailed = exports.Filter = exports.Some = exports.AllOrNone = exports.AssertValue = exports.WrapValue = exports.GetValueOrThrow = exports.ValueOr = exports.GetValue = exports.TryDoAsync = exports.TryDoFlat = exports.TryDo = exports.Err = exports.Ok = void 0;
|
|
4
|
+
const Ok = (t) => ({
|
|
5
|
+
ok: true,
|
|
6
|
+
value: t
|
|
7
|
+
});
|
|
8
|
+
exports.Ok = Ok;
|
|
9
|
+
const Err = (e) => ({
|
|
10
|
+
ok: false,
|
|
11
|
+
error: e
|
|
12
|
+
});
|
|
13
|
+
exports.Err = Err;
|
|
14
|
+
const TryDo = (fn) => {
|
|
15
|
+
try {
|
|
16
|
+
return (0, exports.Ok)(fn());
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
return (0, exports.Err)(err);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
exports.TryDo = TryDo;
|
|
23
|
+
const TryDoFlat = (fn) => {
|
|
24
|
+
try {
|
|
25
|
+
return fn();
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
return (0, exports.Err)(err);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.TryDoFlat = TryDoFlat;
|
|
32
|
+
const TryDoAsync = async (fn) => {
|
|
33
|
+
try {
|
|
34
|
+
return (0, exports.Ok)(await fn());
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return (0, exports.Err)(err);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.TryDoAsync = TryDoAsync;
|
|
41
|
+
const GetValue = (result) => result?.ok === true ? result.value : undefined;
|
|
42
|
+
exports.GetValue = GetValue;
|
|
43
|
+
const ValueOr = (result, or) => result?.ok === true ? result.value : or;
|
|
44
|
+
exports.ValueOr = ValueOr;
|
|
45
|
+
const GetValueOrThrow = (result) => {
|
|
46
|
+
if (result.ok) {
|
|
47
|
+
return result.value;
|
|
48
|
+
}
|
|
49
|
+
throw result.error;
|
|
50
|
+
};
|
|
51
|
+
exports.GetValueOrThrow = GetValueOrThrow;
|
|
52
|
+
const WrapValue = (value) => {
|
|
53
|
+
if (value === undefined || value === null) {
|
|
54
|
+
return (0, exports.Err)(new NoValueError(value));
|
|
55
|
+
}
|
|
56
|
+
return (0, exports.Ok)(value);
|
|
57
|
+
};
|
|
58
|
+
exports.WrapValue = WrapValue;
|
|
59
|
+
exports.AssertValue = exports.GetValueOrThrow;
|
|
60
|
+
const AllOrNone = (results) => {
|
|
61
|
+
const failed = results.filter(res => !res.ok).map(res => res.error);
|
|
62
|
+
if (failed.length > 0) {
|
|
63
|
+
return (0, exports.Err)(new MultipleErrorsError(failed));
|
|
64
|
+
}
|
|
65
|
+
const success = results.filter(res => res.ok).map(res => res.value);
|
|
66
|
+
return (0, exports.Ok)(success);
|
|
67
|
+
};
|
|
68
|
+
exports.AllOrNone = AllOrNone;
|
|
69
|
+
const Some = (results) => {
|
|
70
|
+
const success = results.filter(res => res.ok).map(res => res.value);
|
|
71
|
+
return (0, exports.Ok)(success);
|
|
72
|
+
};
|
|
73
|
+
exports.Some = Some;
|
|
74
|
+
const Filter = (...results) => {
|
|
75
|
+
const success = (0, exports.Some)(results).value.map(val => (0, exports.Ok)(val));
|
|
76
|
+
const failed = results.filter(res => !res.ok);
|
|
77
|
+
return [success, failed];
|
|
78
|
+
};
|
|
79
|
+
exports.Filter = Filter;
|
|
80
|
+
const AnyFailed = (...results) => {
|
|
81
|
+
const errors = results.filter(res => !res.ok).map(res => res.error);
|
|
82
|
+
if (errors.length > 0) {
|
|
83
|
+
return [true, errors];
|
|
84
|
+
}
|
|
85
|
+
return [false];
|
|
86
|
+
};
|
|
87
|
+
exports.AnyFailed = AnyFailed;
|
|
88
|
+
class MultipleErrorsError extends Error {
|
|
89
|
+
errors;
|
|
90
|
+
constructor(errors) {
|
|
91
|
+
super('Got multiple errors:\n' +
|
|
92
|
+
errors.map(err => '\t' + err.message.substring(0, 32).padEnd(35, '.')).join('\n'));
|
|
93
|
+
this.errors = errors;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.MultipleErrorsError = MultipleErrorsError;
|
|
97
|
+
const Pipe = (result) => ({
|
|
98
|
+
then: pipeThen(result),
|
|
99
|
+
result: pipeResult(result),
|
|
100
|
+
value: pipeValue(result),
|
|
101
|
+
valueOr: pipeValueOr(result),
|
|
102
|
+
valueOrThrow: pipeValueOrThrow(result)
|
|
103
|
+
});
|
|
104
|
+
exports.Pipe = Pipe;
|
|
105
|
+
const pipeThen = (result) => (fn) => {
|
|
106
|
+
if (!result.ok) {
|
|
107
|
+
return (0, exports.Pipe)(result);
|
|
108
|
+
}
|
|
109
|
+
return (0, exports.Pipe)((0, exports.Ok)(fn(result.value)));
|
|
110
|
+
};
|
|
111
|
+
const pipeResult = (result) => () => result;
|
|
112
|
+
const pipeValue = (result) => () => (0, exports.GetValue)(result);
|
|
113
|
+
const pipeValueOr = (result) => (or) => (0, exports.GetValue)(result) ?? or;
|
|
114
|
+
const pipeValueOrThrow = (result) => () => {
|
|
115
|
+
if (result.ok) {
|
|
116
|
+
return result.value;
|
|
117
|
+
}
|
|
118
|
+
throw result.error;
|
|
119
|
+
};
|
|
120
|
+
const AsyncPipe = (result) => ({
|
|
121
|
+
then: asyncPipeThen(result),
|
|
122
|
+
result: asyncPipeResult(result),
|
|
123
|
+
value: asyncPipeValue(result),
|
|
124
|
+
valueOr: asyncPipeValueOr(result),
|
|
125
|
+
valueOrThrow: asyncPipeValueOrThrow(result)
|
|
126
|
+
});
|
|
127
|
+
exports.AsyncPipe = AsyncPipe;
|
|
128
|
+
const asyncPipeThen = (result) => (fn) => {
|
|
129
|
+
const asyncResult = result;
|
|
130
|
+
const wrappedPromiseResult = asyncResult.then(unwrappedResult => {
|
|
131
|
+
if (unwrappedResult.ok) {
|
|
132
|
+
try {
|
|
133
|
+
const fnRes = fn(unwrappedResult.value);
|
|
134
|
+
return Promise.resolve(fnRes)
|
|
135
|
+
.catch(exports.Err);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
return (0, exports.Err)(err);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
return unwrappedResult;
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
return (0, exports.AsyncPipe)(wrappedPromiseResult);
|
|
146
|
+
};
|
|
147
|
+
const asyncPipeResult = (result) => () => result;
|
|
148
|
+
const asyncPipeValue = (result) => async () => {
|
|
149
|
+
try {
|
|
150
|
+
const res = await result;
|
|
151
|
+
if (res.ok) {
|
|
152
|
+
return res.value;
|
|
153
|
+
}
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
const asyncPipeValueOr = (result) => async (or) => {
|
|
161
|
+
try {
|
|
162
|
+
const res = await result;
|
|
163
|
+
if (res.ok) {
|
|
164
|
+
return res.value;
|
|
165
|
+
}
|
|
166
|
+
return or;
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return or;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
const asyncPipeValueOrThrow = (result) => async () => {
|
|
173
|
+
const res = await result;
|
|
174
|
+
if (res.ok) {
|
|
175
|
+
return res.value;
|
|
176
|
+
}
|
|
177
|
+
throw res.error;
|
|
178
|
+
};
|
|
179
|
+
const ResultStream = (results) => ({
|
|
180
|
+
map: streamMap(results),
|
|
181
|
+
filter: streamFilter(results),
|
|
182
|
+
results: streamResults(results),
|
|
183
|
+
value: streamValue(results),
|
|
184
|
+
valueOr: streamValueOr(results),
|
|
185
|
+
valueOrThrow: streamValueOrThrow(results)
|
|
186
|
+
});
|
|
187
|
+
exports.ResultStream = ResultStream;
|
|
188
|
+
const streamMap = (results) => (fn) => {
|
|
189
|
+
if (!results.ok) {
|
|
190
|
+
return (0, exports.ResultStream)(results);
|
|
191
|
+
}
|
|
192
|
+
return (0, exports.ResultStream)((0, exports.Ok)(results.value.map(fn)));
|
|
193
|
+
};
|
|
194
|
+
const streamFilter = (results) => (fn) => {
|
|
195
|
+
if (!results.ok) {
|
|
196
|
+
return (0, exports.ResultStream)(results);
|
|
197
|
+
}
|
|
198
|
+
return (0, exports.ResultStream)((0, exports.Ok)(results.value.filter(fn)));
|
|
199
|
+
};
|
|
200
|
+
const streamResults = (results) => () => results;
|
|
201
|
+
const streamValue = (results) => () => results.ok ? results.value : undefined;
|
|
202
|
+
const streamValueOr = (results) => (or) => results.ok ? results.value : or;
|
|
203
|
+
const streamValueOrThrow = (results) => () => {
|
|
204
|
+
if (results.ok) {
|
|
205
|
+
return results.value;
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
throw results.error;
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
class NoValueError extends Error {
|
|
212
|
+
value;
|
|
213
|
+
constructor(value) {
|
|
214
|
+
super('Value was undefined or null');
|
|
215
|
+
this.value = value;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
exports.NoValueError = NoValueError;
|
|
219
|
+
;
|
|
220
|
+
//# sourceMappingURL=Result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Result.js","sourceRoot":"src/","sources":["services/Result.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvaluateHandlebarsClickthroughTemplate = exports.EvaluateHandlebarsProductCardTemplate = void 0;
|
|
4
|
+
const Logger_1 = require("./Logger");
|
|
5
|
+
const Result_1 = require("./Result");
|
|
6
|
+
const EvaluateHandlebarsProductCardTemplate = (logger, windowInfo, publisher, product, clickthrough) => {
|
|
7
|
+
const log = (0, Logger_1.Ctx)(logger)?.with('EvaluateHandlebarsProductCardTemplate');
|
|
8
|
+
log?.info('Evaluating handlebars product card template', product);
|
|
9
|
+
try {
|
|
10
|
+
const renderedClickthrough = clickthrough ?? (0, Result_1.GetValueOrThrow)((0, exports.EvaluateHandlebarsClickthroughTemplate)(log, windowInfo, publisher, product));
|
|
11
|
+
log?.debug('Got clickthrough URL', renderedClickthrough);
|
|
12
|
+
return (0, Result_1.Ok)(publisher.templates.productCardTemplate({
|
|
13
|
+
...product,
|
|
14
|
+
product,
|
|
15
|
+
window: windowInfo,
|
|
16
|
+
publisher,
|
|
17
|
+
catalog: product,
|
|
18
|
+
clickthrough: renderedClickthrough
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
return (0, Result_1.Err)(error);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.EvaluateHandlebarsProductCardTemplate = EvaluateHandlebarsProductCardTemplate;
|
|
26
|
+
const EvaluateHandlebarsClickthroughTemplate = (logger, windowInfo, publisher, product) => {
|
|
27
|
+
const log = (0, Logger_1.Ctx)(logger)?.with('EvaluateHandlebarsClickthroughTemplate');
|
|
28
|
+
log?.info('Evaluating handlebars clickthrough URL template', product);
|
|
29
|
+
try {
|
|
30
|
+
return (0, Result_1.Ok)(publisher.templates.clickThroughUrlTemplate({
|
|
31
|
+
product,
|
|
32
|
+
catalog: product,
|
|
33
|
+
window: windowInfo,
|
|
34
|
+
publisher,
|
|
35
|
+
...product
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
return (0, Result_1.Err)(error);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.EvaluateHandlebarsClickthroughTemplate = EvaluateHandlebarsClickthroughTemplate;
|
|
43
|
+
//# sourceMappingURL=Template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Template.js","sourceRoot":"src/","sources":["services/Template.ts"],"names":[],"mappings":";;;AAKA,qCAA6C;AAC7C,qCAAiE;AAW1D,MAAM,qCAAqC,GAAG,CAAC,MAA2B,EAC7E,UAAyC,EACzC,SAA0C,EAC1C,OAA4B,EAC5B,YAAqB,EACP,EAAE;IAChB,MAAM,GAAG,GAAG,IAAA,YAAG,EAAC,MAAM,CAAC,EAAE,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACvE,GAAG,EAAE,IAAI,CAAC,6CAA6C,EAAE,OAAO,CAAC,CAAC;IAElE,IAAI,CAAC;QACD,MAAM,oBAAoB,GAAG,YAAY,IAAI,IAAA,wBAAe,EACxD,IAAA,8CAAsC,EAAC,GAAG,EACtC,UAAU,EACV,SAAS,EACT,OAAO,CACV,CACJ,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;QAEzD,OAAO,IAAA,WAAE,EAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC;YAC9C,GAAG,OAAO;YACV,OAAO;YACP,MAAM,EAAE,UAAU;YAClB,SAAS;YACT,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,oBAAoB;SACrC,CAAC,CAAC,CAAC;IACR,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,IAAA,YAAG,EAAC,KAAc,CAAC,CAAC;IAC/B,CAAC;AACL,CAAC,CAAC;AA9BW,QAAA,qCAAqC,yCA8BhD;AAEK,MAAM,sCAAsC,GAAG,CAAC,MAA2B,EAC9E,UAAyC,EACzC,SAA0C,EAC1C,OAA4B,EACd,EAAE;IAChB,MAAM,GAAG,GAAG,IAAA,YAAG,EAAC,MAAM,CAAC,EAAE,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACxE,GAAG,EAAE,IAAI,CAAC,iDAAiD,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,CAAC;QACD,OAAO,IAAA,WAAE,EAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAAC;YAClD,OAAO;YACP,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,UAAU;YAClB,SAAS;YACT,GAAG,OAAO;SACb,CAAC,CAAC,CAAC;IACR,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,IAAA,YAAG,EAAC,KAAc,CAAC,CAAC;IAC/B,CAAC;AACL,CAAC,CAAC;AAlBW,QAAA,sCAAsC,0CAkBjD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Geo"), exports);
|
|
18
|
+
__exportStar(require("./Logger"), exports);
|
|
19
|
+
__exportStar(require("./Result"), exports);
|
|
20
|
+
__exportStar(require("./Device"), exports);
|
|
21
|
+
__exportStar(require("./Configuration"), exports);
|
|
22
|
+
__exportStar(require("./Bidder"), exports);
|
|
23
|
+
__exportStar(require("./Product"), exports);
|
|
24
|
+
__exportStar(require("./Recommender"), exports);
|
|
25
|
+
__exportStar(require("./mock"), exports);
|
|
26
|
+
__exportStar(require("./Template"), exports);
|
|
27
|
+
__exportStar(require("./Dynamic"), exports);
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,kDAAgC;AAChC,2CAAyB;AACzB,4CAA0B;AAC1B,gDAA8B;AAC9B,yCAAuB;AACvB,6CAA2B;AAC3B,4CAA0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Bidder.js","sourceRoot":"src/","sources":["services/mock/Bidder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Bidder"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["services/mock/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
|
package/lib/esm/Api.js
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { Err, GetValue, Ok, RequestBids, GetConfiguration, GetGeo, GetDevice, GetSponsoredProduct, GetRecommendedProduct, GenerateTopProducts, GenerateForYou, GeneratePreviousPurchases, GetAllSponsoredProducts, } from './services';
|
|
2
|
+
import { BuildAllSponsoredProductCardResponses, DefaultNative, GenerateSponsoredProductCardResponse, GetHelpers, StartNative, StartRequest } from './helpers';
|
|
3
|
+
import Handlebars from 'handlebars/runtime';
|
|
4
|
+
import { BuildHybridCarousel, BuildHybridCarouselFromInitialBid, BuildRecommendedCarousel, BuildSponsoredCarousel, BuildSponsoredCarouselFromInitialBid } from './helpers/response/Carousel';
|
|
5
|
+
import { GetWindowInfo } from './helpers/Window';
|
|
6
|
+
import { EvaluateHandlebarsClickthroughTemplate, EvaluateHandlebarsProductCardTemplate } from './services/Template';
|
|
7
|
+
import { BuildDynamicZoneRequest, GetDynamicZone } from './services/Dynamic';
|
|
8
|
+
export const PROD_BIDDER = '//bid.surfside.io/rtb/bids/surfside';
|
|
9
|
+
export const PROD_CONFIGURATION_SERVICE = '//r.surfside.io';
|
|
10
|
+
export const PROD_SPONSORED_PRODUCT_FEED = '//creative.surfside.io';
|
|
11
|
+
export const PROD_RECOMMENDED_PRODUCT_FEED = '//creative.surfside.io';
|
|
12
|
+
export const PROD_RECOMMENDER_SERVICE = '//t.surfside.io';
|
|
13
|
+
export const PROD_DYNAMIC_ZONE_SERVICE = '//r.surfside.io/';
|
|
14
|
+
const TLS = (url) => 'http:' + url;
|
|
15
|
+
/**
|
|
16
|
+
* Initializes the API with the services explicitly passed to it. This function is used by the framework for overloading
|
|
17
|
+
* mock services. It should not be used in an application
|
|
18
|
+
* @param internalApiDto The list of services and helpers to inject
|
|
19
|
+
* @returns An initialized Surfside API
|
|
20
|
+
*/
|
|
21
|
+
export async function InitSurfAdsCoreInternal(internalApiDto) {
|
|
22
|
+
const { getDevice, mobile, navigator, ip, getGeo, geoProviderToken, getConfiguration, accountId, siteId, logger, channelId, locationId, userId, handlebars, windowInfo, screenInfo, requestBids, getSponsoredProduct, getAllSponsoredProducts, getRecommendedProduct, generateTopProducts, generateForYou, generatePreviousPurchases, getDynamicZone, buildAllSponsoredProductCardResponses, generateSponsoredProductCardResponse, evaluateProductCardTemplate, evaluateClickthroughTemplate, } = internalApiDto;
|
|
23
|
+
const device = getDevice(screenInfo, navigator, mobile);
|
|
24
|
+
const geo = await getGeo(geoProviderToken, ip);
|
|
25
|
+
const configuration = await getConfiguration();
|
|
26
|
+
if (!configuration.ok) {
|
|
27
|
+
return Err(new MissingConfigurationError(accountId, siteId));
|
|
28
|
+
}
|
|
29
|
+
const startRequestBound = StartRequest.bind(undefined, logger, accountId, siteId, channelId, locationId, GetValue(device), GetValue(geo), userId);
|
|
30
|
+
const startRequest = (zoneId, id) => startRequestBound(zoneId, id)
|
|
31
|
+
.withApp({
|
|
32
|
+
bundle: windowInfo.host,
|
|
33
|
+
name: windowInfo.host,
|
|
34
|
+
id: siteId,
|
|
35
|
+
domain: windowInfo.host,
|
|
36
|
+
publisher: {
|
|
37
|
+
domain: windowInfo.host,
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
.withSite({
|
|
41
|
+
name: windowInfo.host,
|
|
42
|
+
id: siteId,
|
|
43
|
+
kwarray: [],
|
|
44
|
+
mobile: isMobile() ? 1 : 0,
|
|
45
|
+
page: windowInfo.href,
|
|
46
|
+
domain: windowInfo.host,
|
|
47
|
+
publisher: {
|
|
48
|
+
id: siteId,
|
|
49
|
+
name: windowInfo.host,
|
|
50
|
+
domain: windowInfo.host,
|
|
51
|
+
},
|
|
52
|
+
ref: '',
|
|
53
|
+
search: windowInfo.search
|
|
54
|
+
});
|
|
55
|
+
const startNative = StartNative.bind(undefined, logger);
|
|
56
|
+
const defaultNative = DefaultNative.bind(undefined, logger);
|
|
57
|
+
return Ok({
|
|
58
|
+
logger,
|
|
59
|
+
getDevice,
|
|
60
|
+
device: GetValue(device),
|
|
61
|
+
getGeo,
|
|
62
|
+
geo: GetValue(geo),
|
|
63
|
+
configuration: configuration.value,
|
|
64
|
+
getConfiguration,
|
|
65
|
+
handlebars,
|
|
66
|
+
requestBids,
|
|
67
|
+
startRequest,
|
|
68
|
+
startNative,
|
|
69
|
+
defaultNative,
|
|
70
|
+
getSponsoredProduct,
|
|
71
|
+
getAllSponsoredProducts,
|
|
72
|
+
getRecommendedProduct,
|
|
73
|
+
generateTopProducts,
|
|
74
|
+
generateForYou,
|
|
75
|
+
generatePreviousPurchases,
|
|
76
|
+
buildAllSponsoredProductCardResponses,
|
|
77
|
+
generateSponsoredProductCardResponse,
|
|
78
|
+
evaluateProductCardTemplate,
|
|
79
|
+
evaluateClickthroughTemplate,
|
|
80
|
+
buildSponsoredCarousel: BuildSponsoredCarousel.bind(undefined, logger, requestBids, generateSponsoredProductCardResponse),
|
|
81
|
+
buildSponsoredCarouselFromInitialBid: BuildSponsoredCarouselFromInitialBid.bind(undefined, logger, requestBids, generateSponsoredProductCardResponse),
|
|
82
|
+
buildHybridCarouselFromInitialBid: BuildHybridCarouselFromInitialBid.bind(undefined, logger, evaluateClickthroughTemplate, requestBids, generateSponsoredProductCardResponse, generateTopProducts, generatePreviousPurchases, generateForYou, userId),
|
|
83
|
+
buildRecommendedCarousel: BuildRecommendedCarousel.bind(undefined, logger, evaluateClickthroughTemplate, generateTopProducts, generatePreviousPurchases, generateForYou, userId),
|
|
84
|
+
buildHybridCarousel: BuildHybridCarousel.bind(undefined, logger, evaluateClickthroughTemplate, requestBids, generateSponsoredProductCardResponse, generateTopProducts, generatePreviousPurchases, generateForYou, userId),
|
|
85
|
+
getDynamicZone,
|
|
86
|
+
buildDynamicZoneRequest: BuildDynamicZoneRequest.bind(undefined, logger, startRequest, defaultNative, screenInfo)
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
export const InitSurfAdsCoreServices = async (logger, bidderServiceUrl, configurationServiceUrl, productFeedUrl, recommendedProductFeedUrl, recommenderServiceUrl, dynamicZoneServiceUrl, windowInfo, screenInfo, navigator, mobile, ip, geoProviderToken, accountId, siteId, channelId, locationId, userId) => {
|
|
90
|
+
const handlebars = Handlebars.create();
|
|
91
|
+
const helpers = GetHelpers();
|
|
92
|
+
const recommendedProductFeed = GetRecommendedProduct.bind(undefined, logger, recommendedProductFeedUrl, accountId, locationId);
|
|
93
|
+
const configurationService = GetConfiguration.bind(undefined, logger, configurationServiceUrl, handlebars, helpers, accountId, siteId);
|
|
94
|
+
const configuration = await configurationService();
|
|
95
|
+
if (!configuration.ok) {
|
|
96
|
+
return configuration;
|
|
97
|
+
}
|
|
98
|
+
const getAllSponsoredProducts = GetAllSponsoredProducts.bind(undefined, logger, productFeedUrl, accountId, locationId);
|
|
99
|
+
const generateProductCardResponse = GenerateSponsoredProductCardResponse.bind(undefined, logger, getAllSponsoredProducts, windowInfo, configuration.value);
|
|
100
|
+
const evaluateClickthroughTemplate = EvaluateHandlebarsClickthroughTemplate.bind(undefined, logger, windowInfo, configuration.value);
|
|
101
|
+
const evaluateProductCardTemplate = EvaluateHandlebarsProductCardTemplate.bind(undefined, logger, windowInfo, configuration.value);
|
|
102
|
+
return await InitSurfAdsCoreInternal({
|
|
103
|
+
logger,
|
|
104
|
+
requestBids: RequestBids.bind(undefined, logger, bidderServiceUrl, accountId, siteId, locationId, channelId),
|
|
105
|
+
getConfiguration: configurationService,
|
|
106
|
+
getGeo: GetGeo.bind(undefined, logger),
|
|
107
|
+
getDevice: GetDevice.bind(undefined, logger),
|
|
108
|
+
getSponsoredProduct: GetSponsoredProduct.bind(undefined, logger, productFeedUrl, accountId, locationId),
|
|
109
|
+
getAllSponsoredProducts,
|
|
110
|
+
getRecommendedProduct: GetRecommendedProduct.bind(undefined, logger, recommendedProductFeedUrl, accountId, locationId),
|
|
111
|
+
generateTopProducts: GenerateTopProducts.bind(undefined, logger, recommendedProductFeed, recommenderServiceUrl, accountId, siteId, locationId),
|
|
112
|
+
generateForYou: GenerateForYou.bind(undefined, logger, recommendedProductFeed, recommenderServiceUrl, accountId, siteId, locationId, userId ?? 'undefined'),
|
|
113
|
+
generatePreviousPurchases: GeneratePreviousPurchases.bind(undefined, logger, recommendedProductFeed, recommenderServiceUrl, accountId, siteId, locationId, userId ?? 'undefined'),
|
|
114
|
+
buildAllSponsoredProductCardResponses: BuildAllSponsoredProductCardResponses.bind(undefined, logger, getAllSponsoredProducts, windowInfo, configuration.value),
|
|
115
|
+
generateSponsoredProductCardResponse: generateProductCardResponse,
|
|
116
|
+
evaluateProductCardTemplate,
|
|
117
|
+
evaluateClickthroughTemplate,
|
|
118
|
+
handlebars,
|
|
119
|
+
windowInfo,
|
|
120
|
+
screenInfo,
|
|
121
|
+
navigator,
|
|
122
|
+
mobile,
|
|
123
|
+
ip,
|
|
124
|
+
geoProviderToken,
|
|
125
|
+
accountId,
|
|
126
|
+
siteId,
|
|
127
|
+
channelId,
|
|
128
|
+
locationId,
|
|
129
|
+
userId,
|
|
130
|
+
getDynamicZone: GetDynamicZone.bind(undefined, logger, configuration.value)
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
/* For use in serverside rendering */
|
|
134
|
+
// TODO: Rename this?
|
|
135
|
+
export const InitSurfAdsCoreSSR = async (windowInfo, screen, navigator, mobile, ip, geoProviderToken, accountId, siteId, channelId, locationId, userId, logger) => InitSurfAdsCoreServices(logger, TLS(PROD_BIDDER), TLS(PROD_CONFIGURATION_SERVICE), TLS(PROD_SPONSORED_PRODUCT_FEED), TLS(PROD_RECOMMENDED_PRODUCT_FEED), TLS(PROD_RECOMMENDER_SERVICE), TLS(PROD_DYNAMIC_ZONE_SERVICE), windowInfo, screen, navigator, mobile, ip, geoProviderToken, accountId, siteId, channelId, locationId, userId);
|
|
136
|
+
/* For use in web browsers */
|
|
137
|
+
export const InitSurfAdsCore = async (channelId, accountId, siteId, locationId, userId, logger) => {
|
|
138
|
+
/* Not in a browser */
|
|
139
|
+
const windowInfo = GetWindowInfo();
|
|
140
|
+
if (!windowInfo.ok) {
|
|
141
|
+
return windowInfo;
|
|
142
|
+
}
|
|
143
|
+
return InitSurfAdsCoreServices(logger, TLS(PROD_BIDDER), TLS(PROD_CONFIGURATION_SERVICE), TLS(PROD_SPONSORED_PRODUCT_FEED), TLS(PROD_RECOMMENDED_PRODUCT_FEED), TLS(PROD_RECOMMENDER_SERVICE), TLS(PROD_DYNAMIC_ZONE_SERVICE), windowInfo.value, window.screen, window.navigator, isMobile(), undefined, undefined, accountId, siteId, channelId, locationId, userId);
|
|
144
|
+
};
|
|
145
|
+
export class MissingConfigurationError extends Error {
|
|
146
|
+
constructor(accountId, siteId) {
|
|
147
|
+
super('Missing configuration for\n' +
|
|
148
|
+
` accountId: ${accountId}\n` +
|
|
149
|
+
` siteId: ${siteId}\n` +
|
|
150
|
+
'1. Check to make sure that these are the correct values for each field' +
|
|
151
|
+
'2. Check your publisher configuration at ' +
|
|
152
|
+
`https://app.surfside.io/inventory/sites/publisher/${accountId}/${siteId}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
;
|
|
156
|
+
export class NotABrowserError extends Error {
|
|
157
|
+
constructor() {
|
|
158
|
+
super('You are not running Surfside Ads Core in a Web browser, so you cannot use "InitSurfAdsCore". ' +
|
|
159
|
+
'Instead, use InitSurfAdsCoreSSR, and pass the user\'s screen, navigator, and IP address explicitly ' +
|
|
160
|
+
'so that Surfside Ads Core can initialize geo and device information services. e.g: \n' +
|
|
161
|
+
' InitSurfAdsCoreSSR(\n' +
|
|
162
|
+
' /* width and height of the user\'s screen: */\n' +
|
|
163
|
+
' { width: screenWidth, height: screenHeight },\n' +
|
|
164
|
+
' /* userAgent string and language of the user: */\n' +
|
|
165
|
+
' { userAgent: userAgent, language: userLanguage },\n' +
|
|
166
|
+
' /* whether the user is on mobile or not: */\n' +
|
|
167
|
+
' true,\n' +
|
|
168
|
+
' /* the requesting User\'s IP */\n' +
|
|
169
|
+
' request.ipAddress,\n' +
|
|
170
|
+
' /* Your API Token for the Surfside Geo Service: */\n' +
|
|
171
|
+
' geoProviderToken,\n' +
|
|
172
|
+
' accountId,\n' +
|
|
173
|
+
' siteId,\n' +
|
|
174
|
+
' channelId,\n' +
|
|
175
|
+
' locationId,\n' +
|
|
176
|
+
' userId,\n' +
|
|
177
|
+
' /* Optional logger: */\n' +
|
|
178
|
+
' logger\n' +
|
|
179
|
+
' )');
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
const isMobile = () => typeof window !== 'undefined' ? (window.ontouchstart !== undefined) : false;
|
|
183
|
+
//# sourceMappingURL=Api.js.map
|