@surfside/ads-core 1.0.6 → 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 -64
- 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 -0
- package/lib/cjs/index.js.map +1 -0
- 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 -0
- package/lib/esm/index.js.map +1 -0
- 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 +169 -0
- package/lib/types/helpers/Generator.d.ts +5 -0
- package/lib/types/helpers/{handlebars/index.d.ts → Handlebars.d.ts} +10 -5
- package/lib/types/helpers/NativeRequestBuilder.d.ts +29 -0
- package/lib/types/helpers/RequestBuilder.d.ts +16 -0
- package/lib/types/helpers/TryGet.d.ts +2 -0
- package/lib/types/helpers/Window.d.ts +3 -0
- package/lib/types/helpers/index.d.ts +7 -4
- package/lib/types/helpers/response/Banner.d.ts +22 -0
- package/lib/types/helpers/response/BuiltResponse.d.ts +31 -0
- package/lib/types/helpers/response/Carousel.d.ts +51 -0
- package/lib/types/helpers/response/Clickthrough.d.ts +3 -0
- package/lib/types/helpers/response/ProductCard.d.ts +49 -0
- package/lib/types/helpers/response/Video.d.ts +17 -0
- package/lib/types/helpers/response/index.d.ts +6 -0
- package/lib/types/index.d.ts +2 -17
- package/lib/types/models/dynamic/DynamicZone.d.ts +37 -0
- package/lib/types/models/dynamic/index.d.ts +1 -0
- package/lib/types/models/index.d.ts +2 -1
- package/lib/types/models/retail/{IPublisherConfiguration.d.ts → Configuration.d.ts} +11 -9
- package/lib/types/models/retail/Product.d.ts +19 -0
- package/lib/types/models/retail/index.d.ts +3 -3
- package/lib/types/models/rtb/{IBidRequest.d.ts → BidRequest.d.ts} +28 -18
- package/lib/types/models/rtb/NativeRequest.d.ts +170 -0
- package/lib/types/models/rtb/{native/INativeResponse.d.ts → NativeResponse.d.ts} +5 -5
- package/lib/types/models/rtb/index.d.ts +4 -3
- package/lib/types/models/tracking/index.d.ts +1 -3
- package/lib/types/models/vast/Vast.d.ts +6 -9
- package/lib/types/services/Bidder.d.ts +31 -0
- package/lib/types/services/Configuration.d.ts +6 -0
- package/lib/types/services/Device.d.ts +12 -0
- package/lib/types/services/Dynamic.d.ts +26 -0
- package/lib/types/services/Geo.d.ts +6 -0
- package/lib/types/services/Logger.d.ts +14 -0
- package/lib/types/services/Memoization.d.ts +1 -0
- package/lib/types/services/Product.d.ts +13 -0
- package/lib/types/services/Recommender.d.ts +8 -0
- package/lib/types/services/Result.d.ts +57 -0
- package/lib/types/services/Template.d.ts +7 -0
- package/lib/types/services/index.d.ts +11 -5
- package/lib/types/services/mock/Bidder.d.ts +1 -0
- package/lib/types/services/mock/index.d.ts +1 -0
- package/package.json +42 -47
- package/lib/index.js +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/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/rtb/native/Constants.d.ts +0 -60
- package/lib/types/models/rtb/native/INativeRequest.d.ts +0 -54
- 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/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
- /package/lib/types/models/retail/{IRecommenderResponse.d.ts → Recommended.d.ts} +0 -0
- /package/lib/types/models/rtb/{IBidResponse.d.ts → BidResponse.d.ts} +0 -0
- /package/lib/types/models/tracking/{IGeoContext.d.ts → Geo.d.ts} +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export const ConsumeN = (generator, n) => {
|
|
2
|
+
const consumed = [];
|
|
3
|
+
for (let i = 0; i < n; i++) {
|
|
4
|
+
const value = generator.next();
|
|
5
|
+
if (value.done === true) {
|
|
6
|
+
break;
|
|
7
|
+
}
|
|
8
|
+
consumed.push(value.value);
|
|
9
|
+
}
|
|
10
|
+
return consumed;
|
|
11
|
+
};
|
|
12
|
+
export const ConsumeAll = (generator) => {
|
|
13
|
+
const consumed = [];
|
|
14
|
+
for (const value of generator) {
|
|
15
|
+
consumed.push(value);
|
|
16
|
+
}
|
|
17
|
+
return consumed;
|
|
18
|
+
};
|
|
19
|
+
export const ConsumeNAsync = async (generator, n) => {
|
|
20
|
+
const consumed = [];
|
|
21
|
+
while (consumed.length < n) {
|
|
22
|
+
const result = await generator.next();
|
|
23
|
+
if (result.done === true) {
|
|
24
|
+
return [consumed, true];
|
|
25
|
+
}
|
|
26
|
+
consumed.push(result.value);
|
|
27
|
+
}
|
|
28
|
+
return [consumed, false];
|
|
29
|
+
};
|
|
30
|
+
export const ConsumeAllAsync = async (generator) => {
|
|
31
|
+
const consumed = [];
|
|
32
|
+
for await (const value of generator) {
|
|
33
|
+
consumed.push(value);
|
|
34
|
+
}
|
|
35
|
+
return consumed;
|
|
36
|
+
};
|
|
37
|
+
export function* GenerateArray(data) {
|
|
38
|
+
for (const t of data) {
|
|
39
|
+
yield t;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=Generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Generator.js","sourceRoot":"src/","sources":["helpers/Generator.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,SAAuB,EAAE,CAAS,EAAO,EAAE;IACnE,MAAM,QAAQ,GAAQ,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM;QACV,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,SAAuB,EAAO,EAAE;IAC1D,MAAM,QAAQ,GAAQ,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAC9B,SAA4B,EAC5B,CAAS,EAC8B,EAAE;IACzC,MAAM,QAAQ,GAAQ,EAAE,CAAC;IACzB,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAK,SAA4B,EAAgB,EAAE;IACnF,MAAM,QAAQ,GAAQ,EAAE,CAAC;IACzB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,SAAS,CAAC,CAAC,aAAa,CAAI,IAAS;IACvC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
const DEFAULT_MAX_SLUG = 5;
|
|
2
|
+
/**
|
|
3
|
+
* Converts the passed string to a slug with the specified options. By default, the slug is hyphenated and only
|
|
4
|
+
* contains alphanumeric characters. You can pass a different hyphenation regex and a different drop regex to
|
|
5
|
+
* customize the slug. For example, {{slug "My Product Name"}} will return "my-product-name".
|
|
6
|
+
*
|
|
7
|
+
* To change which characters are converted to hyphens, you can pass a regular expression to the hyphenate option.
|
|
8
|
+
* For example, {{slug "My Product's Name" hyphenate="[\s']"}} will return "my-product-s-name".
|
|
9
|
+
* The default hyphenate regex is /[\s_\-,]/ig.
|
|
10
|
+
*
|
|
11
|
+
* To remove characters instead of hyphenate them, you can pass a regular expression to the drop option.
|
|
12
|
+
* For example, {{slug "My Product's Name" drop="[^A-Za-z0-9\s']"}} will return "my-product's-name".
|
|
13
|
+
* The default drop regex is /[^A-Za-z0-9\-]/ig.
|
|
14
|
+
*
|
|
15
|
+
* To limit the max number of hyphenated slug components returned, you can pass a length option.
|
|
16
|
+
* For example, {{slug "My Product's Name" length=2}} will return "my-product".
|
|
17
|
+
* The default length is 5.
|
|
18
|
+
*
|
|
19
|
+
* @param name The string to be slugified
|
|
20
|
+
* @param options The options object. Can take "hypenate", "drop", and "length" options.
|
|
21
|
+
* @returns The slugified string
|
|
22
|
+
*/
|
|
23
|
+
export function slug(name, options) {
|
|
24
|
+
if (name === undefined || name === null || typeof (name) !== 'string') {
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
27
|
+
const hyphenate = options.hash.hyphenate !== undefined
|
|
28
|
+
? new RegExp(options.hash.hyphenate, 'ig')
|
|
29
|
+
: /[\s_\-,]/ig;
|
|
30
|
+
const drop = options.hash.drop !== undefined
|
|
31
|
+
? new RegExp(options.hash.drop, 'ig')
|
|
32
|
+
: /[^A-Za-z0-9-]/ig;
|
|
33
|
+
const dropBefore = options.hash.dropBefore !== undefined
|
|
34
|
+
? new RegExp(options.hash.dropBefore)
|
|
35
|
+
: undefined;
|
|
36
|
+
const maxSlug = options.hash.length ?? DEFAULT_MAX_SLUG;
|
|
37
|
+
const separator = options.hash.separator ?? '-';
|
|
38
|
+
if (dropBefore !== undefined) {
|
|
39
|
+
name = name.replace(dropBefore, '');
|
|
40
|
+
}
|
|
41
|
+
return name
|
|
42
|
+
.replace(hyphenate, separator)
|
|
43
|
+
.replace(drop, '')
|
|
44
|
+
.toLowerCase()
|
|
45
|
+
.split(separator)
|
|
46
|
+
.slice(0, maxSlug)
|
|
47
|
+
.join(separator);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Converts the passed string to lowercase. For example, {{lower "My Product Name"}} will return "my product name".
|
|
51
|
+
*
|
|
52
|
+
* @param name The string to be converted to lowercase
|
|
53
|
+
* @returns A lowercase version of the passed string
|
|
54
|
+
*/
|
|
55
|
+
export function lower(name) {
|
|
56
|
+
if (name === undefined || name === null || typeof (name) !== 'string') {
|
|
57
|
+
return '';
|
|
58
|
+
}
|
|
59
|
+
return name.toLowerCase();
|
|
60
|
+
}
|
|
61
|
+
export function upper(name) {
|
|
62
|
+
if (name === undefined || name === null || typeof (name) !== 'string') {
|
|
63
|
+
return '';
|
|
64
|
+
}
|
|
65
|
+
return name.toUpperCase();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Returns the path component of the URL at the specified position, 1-indexed
|
|
69
|
+
* For example, if the URL is "https://example.com/foo/bar", {{path 1}} will return "foo".
|
|
70
|
+
*
|
|
71
|
+
* @param position The position of the path component to return, 1-indexed
|
|
72
|
+
* @returns The path component at the specified position
|
|
73
|
+
*/
|
|
74
|
+
export function path(position) {
|
|
75
|
+
if (position === 0 || position === undefined || position === null) {
|
|
76
|
+
return '';
|
|
77
|
+
}
|
|
78
|
+
const paths = window.location.pathname.split('/');
|
|
79
|
+
if (paths.length <= position) {
|
|
80
|
+
return '';
|
|
81
|
+
}
|
|
82
|
+
return paths[position];
|
|
83
|
+
}
|
|
84
|
+
export function sed(input, searchRegex, replacement) {
|
|
85
|
+
return input.replace(new RegExp(searchRegex), (...args) => {
|
|
86
|
+
const END = -2;
|
|
87
|
+
const groups = args.slice(1, END); // Extract capture groups
|
|
88
|
+
let result = replacement;
|
|
89
|
+
// Replace backreferences (\1, \2, etc.)
|
|
90
|
+
result = result.replace(/\\(\d+)/g, (_, groupIndex) => groups[groupIndex - 1] ?? '');
|
|
91
|
+
// Support for \U (uppercase transformation)
|
|
92
|
+
result = result.replace(/\\U(\d+)/g, (_, groupIndex) => (groups[groupIndex - 1] ?? '').toUpperCase());
|
|
93
|
+
result = sedCommand(result, 'U', groups, str => str?.toUpperCase());
|
|
94
|
+
result = sedCommand(result, 'L', groups, str => str?.toLowerCase());
|
|
95
|
+
result = sedCommand(result, 'I', groups, str => str?.[0]);
|
|
96
|
+
return result ?? '';
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
export function replace(input, search, replacement, all = true) {
|
|
100
|
+
if (input === null || input === undefined) {
|
|
101
|
+
return '';
|
|
102
|
+
}
|
|
103
|
+
if (search === null || search === undefined || replacement === null || replacement === undefined) {
|
|
104
|
+
return input;
|
|
105
|
+
}
|
|
106
|
+
if (all) {
|
|
107
|
+
return input.replaceAll(search, replacement);
|
|
108
|
+
}
|
|
109
|
+
return input.replace(search, replacement);
|
|
110
|
+
}
|
|
111
|
+
function sedCommand(input, char, groups, transform) {
|
|
112
|
+
if (input === undefined) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
return input.replace(new RegExp(`\\\\${char}(\\d+)`, 'g'), (_, groupIndex) => transform(groups[groupIndex - 1] ?? '') ?? '');
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Returns the value of the specified query parameter from the URL, specified by key.
|
|
119
|
+
* For example, if the URL is "https://example.com?foo=bar", {{search "foo"}} will return "bar".
|
|
120
|
+
*
|
|
121
|
+
* @param name The name of the query parameter to return
|
|
122
|
+
* @returns The value of the query parameter, or an empty string if the parameter is not found
|
|
123
|
+
*/
|
|
124
|
+
export function search(name) {
|
|
125
|
+
if (name?.length === undefined || name.length === 0) {
|
|
126
|
+
return '';
|
|
127
|
+
}
|
|
128
|
+
const search = window.location.search;
|
|
129
|
+
if (search.length === 0) {
|
|
130
|
+
return '';
|
|
131
|
+
}
|
|
132
|
+
const params = new URLSearchParams(search);
|
|
133
|
+
return params.get(name) ?? '';
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Returns the first truthy argument, or an empty string if all arguments are falsy. Returns false for empty strings
|
|
137
|
+
* For example, {{coalesce false (eq "b" "d") c}} will return "c", because false is falsy, "b" is not equal to "d",
|
|
138
|
+
* and c is truthy.
|
|
139
|
+
*
|
|
140
|
+
* @returns The first truthy argument, or an empty string if all arguments are falsy
|
|
141
|
+
*/
|
|
142
|
+
export function coalesce(...args) {
|
|
143
|
+
for (let i = 0; i < args.length - 1; i++) {
|
|
144
|
+
const arg = args[i];
|
|
145
|
+
if (arg !== null && arg !== undefined && arg !== '' && arg !== false) {
|
|
146
|
+
return arg;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return '';
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Joins the passed arguments with the specified separator.
|
|
153
|
+
* For example, {{join "foo" "bar" "baz"}} will return "foo/bar/baz"..
|
|
154
|
+
*
|
|
155
|
+
* There is an optional "separator" argument that can be passed to change the separator. For example,
|
|
156
|
+
* {{join "foo" "bar" "baz" separator=","}} will return "foo,bar,baz".
|
|
157
|
+
*
|
|
158
|
+
* @returns The joined string
|
|
159
|
+
*/
|
|
160
|
+
export function join(...args) {
|
|
161
|
+
const pargs = [...args].slice(0, args.length - 1);
|
|
162
|
+
const options = args[args.length - 1]; /* options is always the last argument */
|
|
163
|
+
const separator = options.hash.separator ?? '/';
|
|
164
|
+
return pargs
|
|
165
|
+
.filter(arg => arg !== undefined && arg !== null && arg !== '') /* filter out nulls and empties */
|
|
166
|
+
.join(separator);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Encodes the passed string for use in a URI component.
|
|
170
|
+
*
|
|
171
|
+
* @param component The string to encode
|
|
172
|
+
* @returns The encoded string, or an empty string if the component is falsy
|
|
173
|
+
*/
|
|
174
|
+
export function uri(component) {
|
|
175
|
+
if (component?.length === undefined || component.length === 0) {
|
|
176
|
+
return '';
|
|
177
|
+
}
|
|
178
|
+
const encoded = encodeURIComponent(component);
|
|
179
|
+
return encoded.replaceAll('\'', '%27');
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Returns true if the two passed arguments are equal (using javascript ===), false otherwise.
|
|
183
|
+
*
|
|
184
|
+
* @param a The first argument
|
|
185
|
+
* @param b The second argument
|
|
186
|
+
* @returns True if the two arguments are equal, false otherwise
|
|
187
|
+
*/
|
|
188
|
+
export function eq(a, b) {
|
|
189
|
+
return a === b;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Returns true if either of the passed arguments are truthy, false otherwise.
|
|
193
|
+
*
|
|
194
|
+
* @param a The first argument
|
|
195
|
+
* @param b The second argument
|
|
196
|
+
* @returns True if either of the arguments are truthy, false otherwise
|
|
197
|
+
*/
|
|
198
|
+
export function or(a, b) {
|
|
199
|
+
return Boolean(a) || Boolean(b);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Returns true if both of the passed arguments are truthy, false otherwise.
|
|
203
|
+
*
|
|
204
|
+
* @param a The first argument
|
|
205
|
+
* @param b The second argument
|
|
206
|
+
* @returns True if both of the arguments are truthy, false otherwise
|
|
207
|
+
*/
|
|
208
|
+
export function and(a, b) {
|
|
209
|
+
return Boolean(a) && Boolean(b);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Returns true if the first argument is in the second argument (an array). Otherwise, returns false.
|
|
213
|
+
* If the second argument is not an array, or the array is empty, this will return false.
|
|
214
|
+
*
|
|
215
|
+
* The name of the helper is "in" but the name of the function is "isIn" because "in" is a reserved word in javascript.
|
|
216
|
+
*
|
|
217
|
+
* @param a The value to check
|
|
218
|
+
* @param b The array to check against
|
|
219
|
+
* @returns True if the value is in the array, false otherwise
|
|
220
|
+
*/
|
|
221
|
+
export function isIn(a, b) {
|
|
222
|
+
if (b?.length === undefined || b.length === 0) {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
return b.includes(a);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Returns an array of the passed arguments. Useful with the "in" helper
|
|
229
|
+
*
|
|
230
|
+
* @returns An array of the passed arguments
|
|
231
|
+
*/
|
|
232
|
+
export function array(...args) {
|
|
233
|
+
return Array.from(args).slice(0, -1);
|
|
234
|
+
}
|
|
235
|
+
export const GetHelpers = () => ({
|
|
236
|
+
slug,
|
|
237
|
+
lower,
|
|
238
|
+
path,
|
|
239
|
+
sed,
|
|
240
|
+
replace,
|
|
241
|
+
search,
|
|
242
|
+
coalesce,
|
|
243
|
+
join,
|
|
244
|
+
get_first: coalesce,
|
|
245
|
+
uri,
|
|
246
|
+
or,
|
|
247
|
+
and,
|
|
248
|
+
isIn,
|
|
249
|
+
array
|
|
250
|
+
});
|
|
251
|
+
//# sourceMappingURL=Handlebars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Handlebars.js","sourceRoot":"src/","sources":["helpers/Handlebars.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { ContextSubTypes, ContextTypes, EventTrackingMethods, EventTypes, NativeAssetId, NativeDataTypes, PlacementTypes, } from '../models';
|
|
2
|
+
import { Ctx } from '../services';
|
|
3
|
+
const DEFAULT_LENGTH = 80;
|
|
4
|
+
const VAST_3_0 = 3;
|
|
5
|
+
;
|
|
6
|
+
const builderWithVer = (logger, state, ver) => {
|
|
7
|
+
logger?.debug('Adding version to native request', ver);
|
|
8
|
+
return botsBuildBots(logger, { ...state, ver });
|
|
9
|
+
};
|
|
10
|
+
const builderWithContext = (logger, state, context) => {
|
|
11
|
+
logger?.debug('Adding context to native request', context);
|
|
12
|
+
return botsBuildBots(logger, { ...state, context });
|
|
13
|
+
};
|
|
14
|
+
const builderWithContextSubType = (logger, state, contextSubType) => {
|
|
15
|
+
logger?.debug('Adding context subtype to native request', contextSubType);
|
|
16
|
+
return botsBuildBots(logger, { ...state, contextSubType });
|
|
17
|
+
};
|
|
18
|
+
const builderWithPlacementType = (logger, state, placementType) => {
|
|
19
|
+
logger?.debug('Adding placement type to native request', placementType);
|
|
20
|
+
return botsBuildBots(logger, { ...state, placementType });
|
|
21
|
+
};
|
|
22
|
+
const builderWithTitle = (logger, state, length = DEFAULT_LENGTH, required = true) => {
|
|
23
|
+
logger?.debug('Adding title to native request', length, required);
|
|
24
|
+
return botsBuildBots(logger, {
|
|
25
|
+
...state,
|
|
26
|
+
assets: [
|
|
27
|
+
...state.assets,
|
|
28
|
+
{
|
|
29
|
+
id: NativeAssetId.Title,
|
|
30
|
+
required: required ? 1 : 0,
|
|
31
|
+
title: {
|
|
32
|
+
len: length
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
const builderWithImage = (logger, state, width, height, minWidth, minHeight, required = true) => {
|
|
39
|
+
logger?.debug('Adding image to native request', width, height, minWidth, minHeight, required);
|
|
40
|
+
return botsBuildBots(logger, {
|
|
41
|
+
...state,
|
|
42
|
+
assets: [
|
|
43
|
+
...state.assets,
|
|
44
|
+
{
|
|
45
|
+
id: NativeAssetId.Image,
|
|
46
|
+
required: required ? 1 : 0,
|
|
47
|
+
img: {
|
|
48
|
+
w: width,
|
|
49
|
+
h: height,
|
|
50
|
+
wmin: minWidth,
|
|
51
|
+
hmin: minHeight
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const builderWithVideo = (logger, state, mimes, minDuration, maxDuration, required = true) => {
|
|
58
|
+
logger?.debug('Adding video to native request', mimes, minDuration, maxDuration, required);
|
|
59
|
+
return botsBuildBots(logger, {
|
|
60
|
+
...state,
|
|
61
|
+
assets: [
|
|
62
|
+
...state.assets,
|
|
63
|
+
{
|
|
64
|
+
id: NativeAssetId.Video,
|
|
65
|
+
required: required ? 1 : 0,
|
|
66
|
+
video: {
|
|
67
|
+
mimes,
|
|
68
|
+
minduration: minDuration,
|
|
69
|
+
maxduration: maxDuration,
|
|
70
|
+
protocols: [VAST_3_0]
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
const builderWithData = (logger, state, type, id, length = DEFAULT_LENGTH, required = true) => {
|
|
77
|
+
logger?.debug('Adding data to request', type, id, length, required);
|
|
78
|
+
return botsBuildBots(logger, {
|
|
79
|
+
...state,
|
|
80
|
+
assets: [
|
|
81
|
+
...state.assets,
|
|
82
|
+
{
|
|
83
|
+
id,
|
|
84
|
+
required: required ? 1 : 0,
|
|
85
|
+
data: {
|
|
86
|
+
type,
|
|
87
|
+
len: length
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
const passToData = (type, id) => (logger, state, length = DEFAULT_LENGTH, required = true) => builderWithData(logger, state, type, id, length, required);
|
|
94
|
+
const builderWithSponsored = passToData(NativeDataTypes.Sponsored, NativeAssetId.Sponsored);
|
|
95
|
+
const builderWithDescription = passToData(NativeDataTypes.Desc, NativeAssetId.Desc);
|
|
96
|
+
const builderWithRating = passToData(NativeDataTypes.Rating, NativeAssetId.Rating);
|
|
97
|
+
const builderWithPrice = passToData(NativeDataTypes.Price, NativeAssetId.Price);
|
|
98
|
+
const builderWithSalePrice = passToData(NativeDataTypes.SalePrice, NativeAssetId.SalePrice);
|
|
99
|
+
const builderWithDisplayURL = passToData(NativeDataTypes.DisplayURL, NativeAssetId.DisplayURL);
|
|
100
|
+
const builderWithCTAText = passToData(NativeDataTypes.CTAText, NativeAssetId.CTAText);
|
|
101
|
+
const builderWithCategory = passToData(NativeDataTypes.SurfCategory, NativeAssetId.SurfCategory);
|
|
102
|
+
const builderWithTHC = passToData(NativeDataTypes.SurfTHC, NativeAssetId.SurfTHC);
|
|
103
|
+
const builderWithCBD = passToData(NativeDataTypes.SurfCBD, NativeAssetId.SurfCBD);
|
|
104
|
+
const builderWithStrain = passToData(NativeDataTypes.SurfStrain, NativeAssetId.SurfStrain);
|
|
105
|
+
const builderWithMetaProduct = passToData(NativeDataTypes.SurfMetaProduct, NativeAssetId.SurfMetaBrand);
|
|
106
|
+
const builderWithEventTracker = (logger, state, event, methods) => {
|
|
107
|
+
logger?.debug('Adding event tracker to big request');
|
|
108
|
+
return botsBuildBots(logger, {
|
|
109
|
+
...state,
|
|
110
|
+
eventTrackers: [
|
|
111
|
+
...state.eventTrackers,
|
|
112
|
+
{
|
|
113
|
+
event,
|
|
114
|
+
methods
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
const builderBuild = (logger, state) => {
|
|
120
|
+
logger?.debug('Building bid request', state);
|
|
121
|
+
return {
|
|
122
|
+
ver: state.ver,
|
|
123
|
+
context: state.context,
|
|
124
|
+
contextsubtype: state.contextSubType,
|
|
125
|
+
assets: state.assets,
|
|
126
|
+
eventtrackers: state.eventTrackers
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
const botsBuildBots = (logger, state) => ({
|
|
130
|
+
withVer: builderWithVer.bind(undefined, logger, state),
|
|
131
|
+
withContext: builderWithContext.bind(undefined, logger, state),
|
|
132
|
+
withContextSubType: builderWithContextSubType.bind(undefined, logger, state),
|
|
133
|
+
withPlacementType: builderWithPlacementType.bind(undefined, logger, state),
|
|
134
|
+
withTitle: builderWithTitle.bind(undefined, logger, state),
|
|
135
|
+
withImage: builderWithImage.bind(undefined, logger, state),
|
|
136
|
+
withVideo: builderWithVideo.bind(undefined, logger, state),
|
|
137
|
+
withData: builderWithData.bind(undefined, logger, state),
|
|
138
|
+
withSponsored: builderWithSponsored.bind(undefined, logger, state),
|
|
139
|
+
withDescription: builderWithDescription.bind(undefined, logger, state),
|
|
140
|
+
withRating: builderWithRating.bind(undefined, logger, state),
|
|
141
|
+
withPrice: builderWithPrice.bind(undefined, logger, state),
|
|
142
|
+
withSalePrice: builderWithSalePrice.bind(undefined, logger, state),
|
|
143
|
+
withDisplayURL: builderWithDisplayURL.bind(undefined, logger, state),
|
|
144
|
+
withCTAText: builderWithCTAText.bind(undefined, logger, state),
|
|
145
|
+
withCategory: builderWithCategory.bind(undefined, logger, state),
|
|
146
|
+
withTHC: builderWithTHC.bind(undefined, logger, state),
|
|
147
|
+
withCBD: builderWithCBD.bind(undefined, logger, state),
|
|
148
|
+
withStrain: builderWithStrain.bind(undefined, logger, state),
|
|
149
|
+
withMetaProduct: builderWithMetaProduct.bind(undefined, logger, state),
|
|
150
|
+
withEventTracker: builderWithEventTracker.bind(undefined, logger, state),
|
|
151
|
+
build: builderBuild.bind(undefined, logger, state)
|
|
152
|
+
});
|
|
153
|
+
export const StartNative = (logger) => {
|
|
154
|
+
const log = Ctx(logger)?.with('StartNative');
|
|
155
|
+
return botsBuildBots(log, {
|
|
156
|
+
assets: [],
|
|
157
|
+
eventTrackers: []
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
export const DefaultNative = (logger) => {
|
|
161
|
+
const log = Ctx(logger)?.with('DefaultNative');
|
|
162
|
+
return StartNative(log)
|
|
163
|
+
.withVer('1.2')
|
|
164
|
+
.withContext(ContextTypes.Product)
|
|
165
|
+
.withContextSubType(ContextSubTypes.Product)
|
|
166
|
+
.withPlacementType(PlacementTypes.InFeed)
|
|
167
|
+
.withEventTracker(EventTypes.Imp, [EventTrackingMethods.Img, EventTrackingMethods.Img]);
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=NativeRequestBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeRequestBuilder.js","sourceRoot":"src/","sources":["helpers/NativeRequestBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { AgentTypes } from '../models';
|
|
2
|
+
import { Ctx, GeoContextToORTB } from '../services';
|
|
3
|
+
const SURF_EID_SOURCE = 'surf-domain-id';
|
|
4
|
+
export function StartRequest(logger, accountId, siteId, channelId, locationId, device, geo, userId, zoneId, id) {
|
|
5
|
+
const log = Ctx(logger)
|
|
6
|
+
?.with('StartRequest')
|
|
7
|
+
.with(accountId)
|
|
8
|
+
.with(siteId)
|
|
9
|
+
.with(channelId)
|
|
10
|
+
.with(locationId)
|
|
11
|
+
.with(id);
|
|
12
|
+
log?.info('Starting request');
|
|
13
|
+
return botsBuildBots(logger, {
|
|
14
|
+
context: {
|
|
15
|
+
accountId,
|
|
16
|
+
siteId,
|
|
17
|
+
channelId,
|
|
18
|
+
locationId,
|
|
19
|
+
zoneId,
|
|
20
|
+
storeId: locationId,
|
|
21
|
+
placementId: zoneId
|
|
22
|
+
},
|
|
23
|
+
geo,
|
|
24
|
+
device,
|
|
25
|
+
id,
|
|
26
|
+
user: userId !== undefined
|
|
27
|
+
? {
|
|
28
|
+
eids: [{
|
|
29
|
+
source: SURF_EID_SOURCE,
|
|
30
|
+
uids: [{
|
|
31
|
+
id: userId,
|
|
32
|
+
atype: AgentTypes.Session
|
|
33
|
+
}]
|
|
34
|
+
}]
|
|
35
|
+
}
|
|
36
|
+
: undefined,
|
|
37
|
+
imp: []
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const builderWithUser = (logger, state, user) => {
|
|
41
|
+
logger?.debug('Adding user to request', user);
|
|
42
|
+
return botsBuildBots(logger, {
|
|
43
|
+
...state,
|
|
44
|
+
user: {
|
|
45
|
+
...user,
|
|
46
|
+
eids: [
|
|
47
|
+
...(state.user?.eids !== undefined
|
|
48
|
+
? state.user.eids
|
|
49
|
+
: []),
|
|
50
|
+
...(user.eids !== undefined
|
|
51
|
+
? user.eids
|
|
52
|
+
: [])
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const builderWithRegulations = (logger, state, regs) => {
|
|
58
|
+
logger?.debug('Added regulations to request', regs);
|
|
59
|
+
return botsBuildBots(logger, { ...state, regs });
|
|
60
|
+
};
|
|
61
|
+
const builderWithApp = (logger, state, app) => {
|
|
62
|
+
logger?.debug('Adding app to request');
|
|
63
|
+
return botsBuildBots(logger, { ...state, app });
|
|
64
|
+
};
|
|
65
|
+
const builderWithSite = (logger, state, site) => {
|
|
66
|
+
logger?.debug('Adding site to request');
|
|
67
|
+
return botsBuildBots(logger, { ...state, site });
|
|
68
|
+
};
|
|
69
|
+
const builderWithBanner = (logger, state, w, h, options, impOptions) => {
|
|
70
|
+
logger?.debug('Adding banner to request', w, h, options, impOptions);
|
|
71
|
+
const id = generateId();
|
|
72
|
+
return botsBuildImp(logger, state, {
|
|
73
|
+
id,
|
|
74
|
+
tagid: id,
|
|
75
|
+
banner: {
|
|
76
|
+
w,
|
|
77
|
+
h,
|
|
78
|
+
...options
|
|
79
|
+
},
|
|
80
|
+
...impOptions
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
const builderWithVideo = (logger, state, w, h, minduration, maxduration, mimes, options, impOptions) => {
|
|
84
|
+
logger?.debug('Adding video to request', w, h, minduration, maxduration, mimes, options, impOptions);
|
|
85
|
+
return botsBuildImp(logger, state, {
|
|
86
|
+
id: generateId(),
|
|
87
|
+
video: {
|
|
88
|
+
w,
|
|
89
|
+
h,
|
|
90
|
+
mimes: (mimes ?? ['video/mp4', 'video/webm']),
|
|
91
|
+
minduration,
|
|
92
|
+
maxduration,
|
|
93
|
+
...options
|
|
94
|
+
},
|
|
95
|
+
...impOptions
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
const builderWithKeywords = (logger, state, keywords) => {
|
|
99
|
+
logger?.debug('Adding keyword to request', keywords);
|
|
100
|
+
return botsBuildBots(logger, {
|
|
101
|
+
...state,
|
|
102
|
+
context: {
|
|
103
|
+
...state.context,
|
|
104
|
+
keywords
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
const builderWithNative = (logger, state, request, options, impOptions) => {
|
|
109
|
+
logger?.debug('Adding native to request', request, options, impOptions);
|
|
110
|
+
return typeof request === 'string'
|
|
111
|
+
? builderWithNativeStr(logger, state, request, options, impOptions)
|
|
112
|
+
: builderWithNativeStr(logger, state, JSON.stringify(request), options, impOptions);
|
|
113
|
+
};
|
|
114
|
+
const builderWithNativeStr = (logger, state, request, options, impOptions) => botsBuildImp(logger, state, {
|
|
115
|
+
id: generateId(),
|
|
116
|
+
native: {
|
|
117
|
+
ver: '1.2',
|
|
118
|
+
request,
|
|
119
|
+
...options
|
|
120
|
+
},
|
|
121
|
+
...impOptions
|
|
122
|
+
});
|
|
123
|
+
const builderBuild = (logger, state) => {
|
|
124
|
+
logger?.debug('Building request', state);
|
|
125
|
+
return {
|
|
126
|
+
id: state.id ?? generateId(),
|
|
127
|
+
imp: state.imp.map(imp => ({
|
|
128
|
+
...imp,
|
|
129
|
+
ext: { ...imp.ext, ...state.context }
|
|
130
|
+
})),
|
|
131
|
+
device: {
|
|
132
|
+
...state.device,
|
|
133
|
+
geo: state.geo === undefined
|
|
134
|
+
? undefined
|
|
135
|
+
: GeoContextToORTB(undefined, state.geo),
|
|
136
|
+
ip: state.geo?.ip
|
|
137
|
+
},
|
|
138
|
+
user: state.user,
|
|
139
|
+
app: state.app,
|
|
140
|
+
site: state.site,
|
|
141
|
+
ext: state.context
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
const botsBuildBots = (logger, state) => ({
|
|
145
|
+
withUser: builderWithUser.bind(undefined, logger, state),
|
|
146
|
+
withRegulations: builderWithRegulations.bind(undefined, logger, state),
|
|
147
|
+
withBanner: builderWithBanner.bind(undefined, logger, state),
|
|
148
|
+
withVideo: builderWithVideo.bind(undefined, logger, state),
|
|
149
|
+
withNative: builderWithNative.bind(undefined, logger, state),
|
|
150
|
+
withApp: builderWithApp.bind(undefined, logger, state),
|
|
151
|
+
withSite: builderWithSite.bind(undefined, logger, state),
|
|
152
|
+
withKeywords: builderWithKeywords.bind(undefined, logger, state),
|
|
153
|
+
build: builderBuild.bind(undefined, logger, state)
|
|
154
|
+
});
|
|
155
|
+
const botsBuildImp = (logger, state, imp) => botsBuildBots(logger, { ...state, imp: [...state.imp, imp] });
|
|
156
|
+
const generateId = () => crypto.randomUUID();
|
|
157
|
+
//# sourceMappingURL=RequestBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestBuilder.js","sourceRoot":"src/","sources":["helpers/RequestBuilder.ts"],"names":[],"mappings":"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"}
|