@surfside/ads-core-mock 0.1.3 → 0.1.6

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.
@@ -1,122 +1,174 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MockGetRecommendedProduct = exports.MockGetAllSponsoredProducts = void 0;
4
- exports.MockGetSposoredProduct = MockGetSposoredProduct;
3
+ exports.MockGetAllSponsoredProductsFactory = exports.MockGetRecommendedProductFactory = exports.FallbackRecommendedProducts = exports.FallbackSponsoredProducts = void 0;
4
+ exports.withFallbackProducts = withFallbackProducts;
5
+ exports.MockGetSponsoredProduct = MockGetSponsoredProduct;
5
6
  exports.MockGenerateSponsoredProductCard = MockGenerateSponsoredProductCard;
6
7
  const ads_core_1 = require("@surfside/ads-core");
7
8
  const CheatCodes_1 = require("./CheatCodes");
8
- const FakeProducts = [
9
+ exports.FallbackSponsoredProducts = [
10
+ // Lemon twist only same one in both
9
11
  {
10
- id: '00001',
11
- 'name': 'SkyHigh OG',
12
- 'description': 'Premium indica strain with earthy undertones and deep relaxation effects',
13
- //"brand": "CannaCloud"
14
- 'brand': 'Mid Software'
12
+ id: 'prod-001',
13
+ name: 'Lemon Twist',
14
+ description: '1:1 CBD:THC oil drops for balanced relief without intense psychoactivity',
15
+ brand: 'Bright Co',
15
16
  },
16
17
  {
17
- id: '00002',
18
- 'name': 'Mellow Mint Tincture',
19
- 'description': 'Fast-acting CBD oil with refreshing mint flavor for daytime relief',
20
- //"brand": "GreenLeaf Therapeutics"
21
- 'brand': 'Mid Software'
18
+ id: 'prod-002',
19
+ name: 'Ocean Breeze',
20
+ description: 'Cool and refreshing',
21
+ brand: 'NatureLabs',
22
22
  },
23
23
  {
24
- id: '00003',
25
- 'name': 'DreamWalker Gummies',
26
- 'description': 'Balanced THC:CBD ratio gummies for gentle euphoria and sleep support',
27
- //"brand": "Elevated Edibles"
28
- 'brand': 'Mid Software'
24
+ id: 'prod-003',
25
+ name: 'Midnight Fuel',
26
+ description: 'Dark roast profile',
27
+ brand: 'Rocket Roast',
29
28
  },
30
29
  {
31
- id: '00004',
32
- 'name': 'Purple Haze Cartridge',
33
- 'description': 'Sativa-dominant vape cartridge with berry notes and creative stimulation',
34
- //"brand": "Vapor Valley"
35
- 'brand': 'Zen Cloud'
30
+ id: 'prod-004',
31
+ name: 'Sunny Daze',
32
+ description: 'Tropical fruit mix',
33
+ brand: 'Bright Co',
36
34
  },
37
35
  {
38
- id: '00005',
39
- 'name': 'Zen Garden Pre-rolls',
40
- 'description': 'Hand-rolled hybrid joints featuring calming terpene profile',
41
- //"brand": "Chronic Creations"
42
- 'brand': 'Zen Cloud'
36
+ id: 'prod-005',
37
+ name: 'Maple Drizzle',
38
+ description: 'Sweet maple treat',
39
+ brand: 'Golden Drop',
43
40
  },
44
41
  {
45
- id: '00006',
46
- 'name': 'Relief Balm Plus',
47
- 'description': 'High-potency topical with cooling menthol for targeted muscle recovery',
48
- //"brand": "HempHeal"
49
- 'brand': 'Zen Cloud'
42
+ id: 'prod-006',
43
+ name: 'Crimson Crunch',
44
+ description: 'Berry granola bar',
45
+ brand: 'NatureLabs',
50
46
  },
51
47
  {
52
- id: '00007',
53
- 'name': 'Cosmic Cookie',
54
- 'description': 'Infused chocolate chip delight with precise 10mg THC microdosing',
55
- //"brand": "Baked Bliss"
56
- 'brand': 'Zen Cloud'
48
+ id: 'prod-007',
49
+ name: 'Cocoa Thunder',
50
+ description: 'Rich chocolate flavor',
51
+ brand: 'Rocket Roast',
57
52
  },
58
53
  {
59
- id: '00008',
60
- 'name': 'Morning Mist Spray',
61
- 'description': 'Rapid sublingual delivery system with citrus essence for mood elevation',
62
- //"brand": "Aurora Botanicals"
63
- 'brand': 'Mid Software'
54
+ id: 'prod-008',
55
+ name: 'Frosty Pine',
56
+ description: 'Cooling pine blend',
57
+ brand: 'EverGreen',
64
58
  },
65
59
  {
66
- id: '00009',
67
- 'name': 'Night Owl Resin',
68
- 'description': 'Premium live resin concentrate with sedative indica properties',
69
- //"brand": "Extract Experts"
70
- 'brand': 'Mid Software'
60
+ id: 'prod-009',
61
+ name: 'Tangerine Rush',
62
+ description: 'Sweet citrus profile',
63
+ brand: 'Bright Co',
71
64
  },
72
65
  {
73
- id: '00010',
74
- 'name': 'Harmony Drops',
75
- 'description': '1:1 CBD:THC oil drops for balanced relief without intense psychoactivity',
76
- //"brand": "Balanced Botanics"
77
- 'brand': 'Mid Software'
66
+ id: 'prod-010',
67
+ name: 'Evening Mist',
68
+ description: 'Light lavender touch',
69
+ brand: 'EverGreen',
78
70
  },
71
+ ];
72
+ exports.FallbackRecommendedProducts = [
73
+ // Lemon twist only same one in both
79
74
  {
80
- id: '00011',
81
- 'name': 'Commander Kief',
82
- 'description': 'Billy Blazed - 28 year old man of below-average work ethic, working diligently in his living ' +
83
- 'room has created a device for slowing the progression of time using a crushed soda can and ' +
84
- 'tin foil. At 3pm on a Wednesday, when others are at work, Billy enters his living room, activates his ' +
85
- 'device with a Bic lighter, and transforms into... COMMANDER KIEF - Doer of nothing!',
86
- //"brand": "Mid Software"
87
- 'brand': 'Mid Software'
88
- }
75
+ id: 'prod-001',
76
+ name: 'Lemon Twist',
77
+ description: '1:1 CBD:THC oil drops for balanced relief without intense psychoactivity',
78
+ brand: 'Bright Co',
79
+ },
80
+ {
81
+ id: 'prod-011',
82
+ name: 'Morning Kick',
83
+ description: 'Light roast coffee',
84
+ brand: 'Rocket Roast',
85
+ },
86
+ {
87
+ id: 'prod-012',
88
+ name: 'Berry Buzz',
89
+ description: 'Mixed berry blend',
90
+ brand: 'NatureLabs',
91
+ },
92
+ {
93
+ id: 'prod-013',
94
+ name: 'Mint Chill',
95
+ description: 'Soothing mint breeze',
96
+ brand: 'EverGreen',
97
+ },
98
+ {
99
+ id: 'prod-014',
100
+ name: 'Vanilla Drop',
101
+ description: 'Classic vanilla taste',
102
+ brand: 'Golden Drop',
103
+ },
104
+ {
105
+ id: 'prod-015',
106
+ name: 'Firecracker',
107
+ description: 'Bold cinnamon pop',
108
+ brand: 'Golden Drop',
109
+ },
110
+ {
111
+ id: 'prod-016',
112
+ name: 'Citrus Zing',
113
+ description: 'Lime and lemon fusion',
114
+ brand: 'Bright Co',
115
+ },
116
+ {
117
+ id: 'prod-017',
118
+ name: 'Cocoa Dream',
119
+ description: 'Velvety chocolate',
120
+ brand: 'Rocket Roast',
121
+ },
122
+ {
123
+ id: 'prod-018',
124
+ name: 'Forest Whisper',
125
+ description: 'Pine and sage blend',
126
+ brand: 'EverGreen',
127
+ },
128
+ {
129
+ id: 'prod-019',
130
+ name: 'Cherry Pop',
131
+ description: 'Sweet cherry candy',
132
+ brand: 'NatureLabs',
133
+ },
89
134
  ];
90
- async function* MockGetSposoredProduct(logger, accountId) {
135
+ function withFallbackProducts(provided, fallback, label, logger) {
136
+ if (!Array.isArray(provided) || provided.length === 0) {
137
+ (0, ads_core_1.Ctx)(logger)
138
+ ?.with('withFallbackProducts')
139
+ ?.info?.(`Using fallback for ${label ?? 'products'}`);
140
+ return fallback;
141
+ }
142
+ return provided;
143
+ }
144
+ async function* MockGetSponsoredProduct(logger, accountId, products) {
91
145
  const log = (0, ads_core_1.Ctx)(logger)?.with('MockGetSponsoredProduct');
92
- log?.info('Getting mock sponsored product');
93
- while (true) {
94
- for (const fake of FakeProducts) {
95
- log?.debug('Fake product', accountId);
96
- yield productify(fake);
97
- }
98
- log?.debug('Back to the beginning');
146
+ for (const product of products) {
147
+ log?.debug('Yielding product', product.id);
148
+ yield productify(product);
99
149
  }
100
150
  }
101
- const MockGetAllSponsoredProducts = async () => (0, ads_core_1.Ok)(FakeProducts.map(productify));
102
- exports.MockGetAllSponsoredProducts = MockGetAllSponsoredProducts;
103
- const MockGetRecommendedProduct = async () => (0, ads_core_1.Ok)(productify(FakeProducts[Math.floor(Math.random() * FakeProducts.length)]));
104
- exports.MockGetRecommendedProduct = MockGetRecommendedProduct;
151
+ ;
152
+ const MockGetRecommendedProductFactory = (products) => async () => (0, ads_core_1.Ok)(products[Math.floor(Math.random() * products.length)]);
153
+ exports.MockGetRecommendedProductFactory = MockGetRecommendedProductFactory;
154
+ const MockGetAllSponsoredProductsFactory = (products) => async () => (0, ads_core_1.Ok)(products.map(productify));
155
+ exports.MockGetAllSponsoredProductsFactory = MockGetAllSponsoredProductsFactory;
105
156
  const productify = (product) => ({
157
+ id: product.id,
106
158
  name: product.name,
107
159
  brand_name: product.brand,
108
160
  brandName: product.brand,
109
161
  details: product.description,
110
162
  image: `http://creative.surfside.io/mock/flower${Math.floor(Math.random() * 10) + 1}.jpg`
111
163
  });
112
- async function* MockGenerateSponsoredProductCard(logger, windowInfo, config, accountId, bids) {
164
+ async function* MockGenerateSponsoredProductCard(logger, windowInfo, config, accountId, getSponsoredProductFactory, bids) {
113
165
  const log = (0, ads_core_1.Ctx)(logger)?.with('MockGenerateSponsoredProductCard');
114
166
  log?.info('Generating mock sponsored product card response');
115
167
  for (const bid of bids) {
116
168
  log?.info('Going through bids', bid);
117
169
  const native = JSON.parse(bid?.adm ?? '');
118
170
  log?.debug('Native', native);
119
- for await (const product of MockGetSposoredProduct(logger, accountId)) {
171
+ for await (const product of getSponsoredProductFactory) {
120
172
  log?.info('Yielding sponsored product card');
121
173
  switch (accountId) {
122
174
  case CheatCodes_1.CHEAT_CODES.returnSome: {
@@ -125,7 +177,6 @@ async function* MockGenerateSponsoredProductCard(logger, windowInfo, config, acc
125
177
  log?.info('Returning no product');
126
178
  return;
127
179
  }
128
- ;
129
180
  break;
130
181
  }
131
182
  case CheatCodes_1.CHEAT_CODES.returnNone: {
@@ -139,16 +190,16 @@ async function* MockGenerateSponsoredProductCard(logger, windowInfo, config, acc
139
190
  product,
140
191
  window: windowInfo,
141
192
  publisher: config,
142
- catalog: product
193
+ catalog: product,
143
194
  }),
144
195
  bid: bid,
145
196
  product,
146
197
  trackers: {
147
198
  imp: ['https://surfside.io/track'],
148
199
  win: 'https://surfside.io/win',
149
- others: []
200
+ others: [],
150
201
  },
151
- sponsored: true
202
+ sponsored: true,
152
203
  };
153
204
  }
154
205
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Product.js","sourceRoot":"src/","sources":["mock/Product.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Product.js","sourceRoot":"src/","sources":["mock/Product.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmptyArrayError = exports.GetRandom = void 0;
4
+ const ads_core_client_1 = require("@surfside/ads-core-client");
5
+ const GetRandom = (arr) => {
6
+ if (arr.length === 0) {
7
+ return (0, ads_core_client_1.Err)(new EmptyArrayError);
8
+ }
9
+ const idx = Math.floor(Math.random() * arr.length);
10
+ return (0, ads_core_client_1.Ok)(arr[idx]);
11
+ };
12
+ exports.GetRandom = GetRandom;
13
+ class EmptyArrayError extends Error {
14
+ constructor() {
15
+ super('Array was empty');
16
+ }
17
+ }
18
+ exports.EmptyArrayError = EmptyArrayError;
19
+ //# sourceMappingURL=Array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Array.js","sourceRoot":"src/","sources":["util/Array.ts"],"names":[],"mappings":";;;AAAA,+DAAiE;AAE1D,MAAM,SAAS,GAAG,CAAI,GAAa,EAAa,EAAE;IACrD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,IAAA,qBAAG,EAAC,IAAI,eAAe,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,IAAA,oBAAE,EAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC;AACzB,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEF,MAAa,eAAgB,SAAQ,KAAK;IACtC;QACI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;CACJ;AAJD,0CAIC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Wait = void 0;
4
+ /* Waits some milliseconds without blocking */
5
+ const Wait = (time) => new Promise(resolve => setTimeout(resolve, time));
6
+ exports.Wait = Wait;
7
+ //# sourceMappingURL=Wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wait.js","sourceRoot":"src/","sources":["util/Wait.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AACvC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAA3E,QAAA,IAAI,QAAuE"}
package/lib/esm/index.js CHANGED
@@ -2,31 +2,37 @@ import { BuildAllResponses, BuildAllSponsoredProductCardResponses, BuildBannerRe
2
2
  import { MockGetConfiguration } from './mock/Configuration';
3
3
  import { MockGetGeo } from './mock/Geo';
4
4
  import { MockGetDevice } from './mock/Device';
5
- import { MockGenerateSponsoredProductCard, MockGetAllSponsoredProducts, MockGetRecommendedProduct, MockGetSposoredProduct } from './mock/Product';
5
+ import { FallbackRecommendedProducts, FallbackSponsoredProducts, MockGetRecommendedProductFactory, withFallbackProducts, MockGenerateSponsoredProductCard, MockGetAllSponsoredProductsFactory, MockGetSponsoredProduct } from './mock/Product';
6
6
  import { MockGenerateForYou, MockGeneratePastPurchases, MockGenerateTopProducts } from './mock/Recommender';
7
7
  import Handlebars from 'handlebars/runtime';
8
8
  import { MockRequestBids } from './mock';
9
9
  import { MockGetDynamicZone } from './mock/Dynamic';
10
- export const InitSurfAdsCoreMock = async (accountId, siteId, channelId, locationId, userId, logger) => {
10
+ export const InitSurfAdsCoreMock = async (accountId, siteId, channelId, locationId, userId, logger, mockSponsoredProducts, mockRecommendedProducts, simulateNoResponse, simulateNetworkLatency) => {
11
11
  const windowInfo = GetValueOrThrow(GetWindowInfo());
12
12
  const config = GetValueOrThrow(await MockGetConfiguration(logger));
13
- const buildBannerResponse = BuildBannerResponse.bind(undefined, logger, windowInfo, config), buildVideoResponse = BuildVideoResponse.bind(undefined, logger, windowInfo, config), buildAllSponsoredProductCardResponses = BuildAllSponsoredProductCardResponses.bind(undefined, logger, MockGetAllSponsoredProducts, windowInfo, config);
13
+ // Use fallback-aware product arrays
14
+ const sponsoredProducts = withFallbackProducts(mockSponsoredProducts, FallbackSponsoredProducts, 'sponsored', logger);
15
+ const recommendedProducts = withFallbackProducts(mockRecommendedProducts, FallbackRecommendedProducts, 'recommended', logger);
16
+ const getAllSponsoredProducts = MockGetAllSponsoredProductsFactory(sponsoredProducts);
17
+ const buildBannerResponse = BuildBannerResponse.bind(undefined, logger, windowInfo, config), buildVideoResponse = BuildVideoResponse.bind(undefined, logger, windowInfo, config), buildAllSponsoredProductCardResponses = BuildAllSponsoredProductCardResponses.bind(undefined, logger, getAllSponsoredProducts, windowInfo, config);
14
18
  const evaluateClickthroughTemplate = EvaluateHandlebarsClickthroughTemplate.bind(undefined, logger, windowInfo, config);
15
19
  const evaluateProductCardTemplate = EvaluateHandlebarsProductCardTemplate.bind(undefined, logger, windowInfo, config);
20
+ const getSponsoredProduct = MockGetSponsoredProduct.bind(undefined, logger, accountId, sponsoredProducts);
21
+ const getRecommendedProduct = MockGetRecommendedProductFactory(recommendedProducts);
16
22
  return InitSurfAdsCoreClientInternal({
17
23
  logger,
18
- requestBids: MockRequestBids.bind(undefined, logger, windowInfo),
24
+ requestBids: MockRequestBids.bind(undefined, logger, windowInfo, simulateNetworkLatency ?? 0, simulateNoResponse ?? 0),
19
25
  getConfiguration: MockGetConfiguration.bind(undefined, logger),
20
26
  getGeo: MockGetGeo,
21
27
  getDevice: MockGetDevice,
22
- getSponsoredProduct: MockGetSposoredProduct.bind(undefined, logger, accountId),
23
- getAllSponsoredProducts: MockGetAllSponsoredProducts,
24
- getRecommendedProduct: MockGetRecommendedProduct,
25
- generateTopProducts: MockGenerateTopProducts.bind(undefined, MockGetRecommendedProduct),
26
- generateForYou: MockGenerateForYou.bind(undefined, MockGetRecommendedProduct),
27
- generatePreviousPurchases: MockGeneratePastPurchases.bind(undefined, MockGetRecommendedProduct),
28
+ getSponsoredProduct,
29
+ getAllSponsoredProducts,
30
+ getRecommendedProduct: getRecommendedProduct,
31
+ generateTopProducts: MockGenerateTopProducts.bind(undefined, getRecommendedProduct),
32
+ generateForYou: MockGenerateForYou.bind(undefined, getRecommendedProduct),
33
+ generatePreviousPurchases: MockGeneratePastPurchases.bind(undefined, getRecommendedProduct),
28
34
  buildAllProductCardResponses: buildAllSponsoredProductCardResponses,
29
- generateProductCardResponse: MockGenerateSponsoredProductCard.bind(undefined, logger, windowInfo, config, accountId),
35
+ generateProductCardResponse: MockGenerateSponsoredProductCard.bind(undefined, logger, windowInfo, config, accountId, getSponsoredProduct()),
30
36
  buildBannerResponse,
31
37
  buildVideoResponse,
32
38
  buildAllResponses: BuildAllResponses.bind(undefined, logger, buildBannerResponse, buildVideoResponse, buildAllSponsoredProductCardResponses),
@@ -45,7 +51,7 @@ export const InitSurfAdsCoreMock = async (accountId, siteId, channelId, location
45
51
  screenInfo: window.screen,
46
52
  evaluateProductCardTemplate,
47
53
  evaluateClickthroughTemplate,
48
- getDynamicZone: MockGetDynamicZone
54
+ getDynamicZone: MockGetDynamicZone,
49
55
  });
50
56
  };
51
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { Ctx, Err, EventTrackingMethods, EventTypes, GetValue, GetValueOrThrow, NativeAssetId, NativeDataTypes, NativeImageTypes, Ok } from '@surfside/ads-core';
1
+ import { Ctx, Err, EventTrackingMethods, EventTypes, GetValue, GetValueOrThrow, NativeAssetId, NativeDataTypes, NativeImageTypes, NoBidsError, Ok } from '@surfside/ads-core';
2
+ import { Wait } from '../util/Wait';
2
3
  const NativeSize = 350;
3
4
  const HardcodedVideoWidth = 320;
4
5
  const HardcodedVideoHeight = 240;
@@ -83,25 +84,22 @@ const getSearchParam = (search, key) => search.replace('?', '')
83
84
  .split('&')
84
85
  .map(s => s.split('='))
85
86
  .find(([k]) => k == key)?.[1];
86
- export const MockRequestBids = async (logger, windowInfo, bidRequest) => {
87
+ export const MockRequestBids = async (logger, windowInfo, simulateNetworkLatency, simulateNoResponse, bidRequest) => {
87
88
  const log = Ctx(logger)?.with('MockRequestBids');
88
89
  log?.info('Requesting mock bids');
89
90
  log?.debug(bidRequest);
91
+ log?.debug('Debug options: ', simulateNetworkLatency, simulateNoResponse);
92
+ if (simulateNetworkLatency > 0) {
93
+ await Wait(simulateNetworkLatency);
94
+ }
95
+ if (simulateNoResponse > 0) {
96
+ const dice = Math.random();
97
+ if (dice < simulateNoResponse) {
98
+ return Err(new NoBidsError(bidRequest));
99
+ }
100
+ }
90
101
  const responses = [];
91
102
  const returned = bidRequest.imp.length;
92
- // const returned = (() => {
93
- // switch (bidRequest.ext?.accountId) {
94
- // case CHEAT_CODES.returnSome: {
95
- // return Math.round((bidRequest.imp.length / 2) + (Math.random() * bidRequest.imp.length / 2));
96
- // }
97
- // case CHEAT_CODES.returnNone: {
98
- // return 0;
99
- // }
100
- // default: {
101
- // return bidRequest.imp.length;
102
- // }
103
- // }
104
- // })();
105
103
  const videoUrl = getSearchParam(windowInfo.search, 'surf_mock_video_url') ?? 'https://creative.surfside.io/mock/test_30s_320x240.mp4';
106
104
  const mockWidth = Number(getSearchParam(windowInfo.search, 'surf_mock_video_width'));
107
105
  const mockHeight = Number(getSearchParam(windowInfo.search, 'surf_mock_video_height'));
@@ -212,19 +210,61 @@ const makeBanner = (requestId, impid, banner) => ({
212
210
  id: requestId,
213
211
  seatbid: [
214
212
  {
215
- bid: [{
213
+ bid: [
214
+ {
216
215
  id: impid,
217
216
  impid,
218
217
  w: banner.w,
219
218
  h: banner.h,
220
- price: 3.50,
219
+ price: 3.5,
221
220
  nurl: 'https://google.com/',
222
- adm: GetValueOrThrow(makeImage(makeRealBannerSize(banner.w), makeRealBannerSize(banner.h))).outerHTML
223
- }]
224
- }
225
- ]
221
+ adm: GetValueOrThrow(makeBannerImage(makeRealBannerSize(banner.w), makeRealBannerSize(banner.h))).outerHTML,
222
+ },
223
+ ],
224
+ },
225
+ ],
226
226
  });
227
227
  const makeRealBannerSize = (s) => s <= 16 ? s * 100 : s;
228
+ export const makeBannerImage = (w, h, message) => {
229
+ const aspectRatio = w / h;
230
+ // Use high canvas resolution internally (purely for image quality, not layout)
231
+ const canvas = document.createElement('canvas');
232
+ canvas.width = 1600;
233
+ canvas.height = 1600 / aspectRatio;
234
+ const ctx = canvas.getContext('2d');
235
+ if (ctx === null) {
236
+ return Err(new CanvasFailedError());
237
+ }
238
+ // Solid background (no gradient)
239
+ const bgColor = SurfColors[Math.floor(Math.random() * SurfColors.length)];
240
+ ctx.fillStyle = bgColor;
241
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
242
+ // Draw center text
243
+ const text = message ?? `${w}x${h}`;
244
+ ctx.font = 'bold 100px Arial';
245
+ ctx.textAlign = 'center';
246
+ ctx.textBaseline = 'middle';
247
+ ctx.fillStyle = 'white';
248
+ ctx.strokeStyle = 'black';
249
+ ctx.lineWidth = 8;
250
+ ctx.strokeText(text, canvas.width / 2, canvas.height / 2);
251
+ ctx.fillText(text, canvas.width / 2, canvas.height / 2);
252
+ // Create image element
253
+ const img = document.createElement('img');
254
+ img.src = canvas.toDataURL();
255
+ img.style.width = '100%';
256
+ img.style.height = 'auto';
257
+ img.style.display = 'block';
258
+ img.style.objectFit = 'cover';
259
+ img.style.aspectRatio = `${w} / ${h}`;
260
+ // Wrap in anchor
261
+ const anchor = document.createElement('a');
262
+ anchor.href = 'https://www.surfside.io';
263
+ anchor.style.display = 'block';
264
+ anchor.style.width = '100%';
265
+ anchor.appendChild(img);
266
+ return Ok(anchor);
267
+ };
228
268
  export const makeImage = (width, height, message) => {
229
269
  const canv = document.createElement('canvas');
230
270
  const originalWidth = width;
@@ -237,7 +277,7 @@ export const makeImage = (width, height, message) => {
237
277
  canv.height = height;
238
278
  const ctx = canv.getContext('2d');
239
279
  if (ctx === null) {
240
- return Err(new Error('Failed to create 2D Canvas'));
280
+ return Err(new CanvasFailedError);
241
281
  }
242
282
  const gradient = ctx.createLinearGradient(0, 0, canv.width, canv.height);
243
283
  const randomColor1 = SurfColors[Math.floor(Math.random() * SurfColors.length)];
@@ -301,6 +341,11 @@ export const makeImage = (width, height, message) => {
301
341
  anchor.appendChild(productInfo);
302
342
  return Ok(anchor);
303
343
  };
344
+ export class CanvasFailedError extends Error {
345
+ constructor() {
346
+ super('Failed to create 2D context');
347
+ }
348
+ }
304
349
  const makeNative = (requestId, impid) => ({
305
350
  id: requestId,
306
351
  seatbid: [
@@ -1 +1 @@
1
- {"version":3,"file":"Bidder.js","sourceRoot":"src/","sources":["mock/Bidder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bidder.js","sourceRoot":"src/","sources":["mock/Bidder.ts"],"names":[],"mappings":"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"}