@surfside/ads-core-mock 0.1.0 → 0.1.1

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.
Files changed (42) hide show
  1. package/README.md +15 -15
  2. package/lib/cjs/index.js +58 -6358
  3. package/lib/cjs/index.js.map +1 -41
  4. package/lib/cjs/mock/Bidder.js +451 -0
  5. package/lib/cjs/mock/Bidder.js.map +1 -0
  6. package/lib/cjs/mock/CheatCodes.js +9 -0
  7. package/lib/cjs/mock/CheatCodes.js.map +1 -0
  8. package/lib/cjs/mock/Configuration.js +309 -0
  9. package/lib/cjs/mock/Configuration.js.map +1 -0
  10. package/lib/cjs/mock/Device.js +15 -0
  11. package/lib/cjs/mock/Device.js.map +1 -0
  12. package/lib/cjs/mock/Dynamic.js +66 -0
  13. package/lib/cjs/mock/Dynamic.js.map +1 -0
  14. package/lib/cjs/mock/Geo.js +19 -0
  15. package/lib/cjs/mock/Geo.js.map +1 -0
  16. package/lib/cjs/mock/Product.js +146 -0
  17. package/lib/cjs/mock/Product.js.map +1 -0
  18. package/lib/cjs/mock/Recommender.js +13 -0
  19. package/lib/cjs/mock/Recommender.js.map +1 -0
  20. package/lib/cjs/mock/index.js +20 -0
  21. package/lib/cjs/mock/index.js.map +1 -0
  22. package/lib/esm/index.js +51 -6330
  23. package/lib/esm/index.js.map +1 -41
  24. package/lib/esm/mock/Bidder.js +446 -0
  25. package/lib/esm/mock/Bidder.js.map +1 -0
  26. package/lib/esm/mock/CheatCodes.js +6 -0
  27. package/lib/esm/mock/CheatCodes.js.map +1 -0
  28. package/lib/esm/mock/Configuration.js +305 -0
  29. package/lib/esm/mock/Configuration.js.map +1 -0
  30. package/lib/esm/mock/Device.js +11 -0
  31. package/lib/esm/mock/Device.js.map +1 -0
  32. package/lib/esm/mock/Dynamic.js +62 -0
  33. package/lib/esm/mock/Dynamic.js.map +1 -0
  34. package/lib/esm/mock/Geo.js +15 -0
  35. package/lib/esm/mock/Geo.js.map +1 -0
  36. package/lib/esm/mock/Product.js +139 -0
  37. package/lib/esm/mock/Product.js.map +1 -0
  38. package/lib/esm/mock/Recommender.js +9 -0
  39. package/lib/esm/mock/Recommender.js.map +1 -0
  40. package/lib/esm/mock/index.js +4 -0
  41. package/lib/esm/mock/index.js.map +1 -0
  42. package/package.json +30 -22
@@ -0,0 +1,446 @@
1
+ import { Ctx, Err, EventTrackingMethods, EventTypes, GetValue, GetValueOrThrow, NativeAssetId, NativeDataTypes, NativeImageTypes, Ok } from '@surfside/ads-core';
2
+ const NativeSize = 350;
3
+ const HardcodedVideoWidth = 320;
4
+ const HardcodedVideoHeight = 240;
5
+ const SurfColors = [
6
+ /* Accents */
7
+ '#331c7a',
8
+ '#1f69ff',
9
+ '#4ceaaa',
10
+ '#c5f700',
11
+ '#f7a800',
12
+ '#f66d18',
13
+ '#e72024',
14
+ '#c0abff',
15
+ '#f97585',
16
+ '#f4bd5d',
17
+ '#baf7db',
18
+ '#7eceeb',
19
+ '#0dcc91',
20
+ '#d3d3e0'
21
+ ];
22
+ const FakeProducts = [
23
+ {
24
+ 'name': 'SkyHigh OG',
25
+ 'description': 'Premium indica strain with earthy undertones and deep relaxation effects',
26
+ 'brand': 'CannaCloud'
27
+ },
28
+ {
29
+ 'name': 'Mellow Mint Tincture',
30
+ 'description': 'Fast-acting CBD oil with refreshing mint flavor for daytime relief',
31
+ 'brand': 'GreenLeaf Therapeutics'
32
+ },
33
+ {
34
+ 'name': 'DreamWalker Gummies',
35
+ 'description': 'Balanced THC:CBD ratio gummies for gentle euphoria and sleep support',
36
+ 'brand': 'Elevated Edibles'
37
+ },
38
+ {
39
+ 'name': 'Purple Haze Cartridge',
40
+ 'description': 'Sativa-dominant vape cartridge with berry notes and creative stimulation',
41
+ 'brand': 'Vapor Valley'
42
+ },
43
+ {
44
+ 'name': 'Zen Garden Pre-rolls',
45
+ 'description': 'Hand-rolled hybrid joints featuring calming terpene profile',
46
+ 'brand': 'Chronic Creations'
47
+ },
48
+ {
49
+ 'name': 'Relief Balm Plus',
50
+ 'description': 'High-potency topical with cooling menthol for targeted muscle recovery',
51
+ 'brand': 'HempHeal'
52
+ },
53
+ {
54
+ 'name': 'Cosmic Cookie',
55
+ 'description': 'Infused chocolate chip delight with precise 10mg THC microdosing',
56
+ 'brand': 'Baked Bliss'
57
+ },
58
+ {
59
+ 'name': 'Morning Mist Spray',
60
+ 'description': 'Rapid sublingual delivery system with citrus essence for mood elevation',
61
+ 'brand': 'Aurora Botanicals'
62
+ },
63
+ {
64
+ 'name': 'Night Owl Resin',
65
+ 'description': 'Premium live resin concentrate with sedative indica properties',
66
+ 'brand': 'Extract Experts'
67
+ },
68
+ {
69
+ 'name': 'Harmony Drops',
70
+ 'description': '1:1 CBD:THC oil drops for balanced relief without intense psychoactivity',
71
+ 'brand': 'Balanced Botanics'
72
+ },
73
+ {
74
+ 'name': 'Commander Kief',
75
+ 'description': 'Billy Blazed - 28 year old man of below-average work ethic, working diligently in his living ' +
76
+ 'room has created a device for slowing the progression of time using a crushed soda can and ' +
77
+ 'tin foil. At 3pm on a Wednesday, when others are at work, Billy enters his living room, activates his ' +
78
+ 'device with a Bic lighter, and transforms into... COMMANDER KIEF - Doer of nothing!',
79
+ 'brand': 'Mid Software'
80
+ }
81
+ ];
82
+ const getSearchParam = (search, key) => search.replace('?', '')
83
+ .split('&')
84
+ .map(s => s.split('='))
85
+ .find(([k]) => k == key)?.[1];
86
+ export const MockRequestBids = async (logger, windowInfo, bidRequest) => {
87
+ const log = Ctx(logger)?.with('MockRequestBids');
88
+ log?.info('Requesting mock bids');
89
+ log?.debug(bidRequest);
90
+ const responses = [];
91
+ 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
+ const videoUrl = getSearchParam(windowInfo.search, 'surf_mock_video_url') ?? 'https://creative.surfside.io/mock/test_30s_320x240.mp4';
106
+ const mockWidth = Number(getSearchParam(windowInfo.search, 'surf_mock_video_width'));
107
+ const mockHeight = Number(getSearchParam(windowInfo.search, 'surf_mock_video_height'));
108
+ const requiredVideoWidth = Number.isNaN(mockWidth) ? HardcodedVideoWidth : mockWidth;
109
+ const requiredVideoHeight = Number.isNaN(mockHeight) ? HardcodedVideoHeight : mockHeight;
110
+ for (let i = 0; i < returned; i++) {
111
+ const imp = bidRequest.imp[i];
112
+ if (imp === undefined) {
113
+ continue;
114
+ }
115
+ if (imp.video !== undefined &&
116
+ /* Only one size for now */
117
+ imp.video.w === requiredVideoWidth && imp.video.h === requiredVideoHeight) {
118
+ responses.push(makeVideo(bidRequest.id, imp.id, videoUrl));
119
+ }
120
+ else if (imp.native !== undefined) {
121
+ responses.push(makeNative(bidRequest.id, imp.id));
122
+ }
123
+ else if (imp.banner !== undefined) {
124
+ responses.push(makeBanner(bidRequest.id, imp.id, imp.banner));
125
+ }
126
+ }
127
+ const response = flattenResponses(responses);
128
+ return Ok(response);
129
+ };
130
+ const flattenResponses = (responses) => {
131
+ if (responses.length === 0) {
132
+ return {
133
+ id: crypto.randomUUID(),
134
+ seatbid: []
135
+ };
136
+ }
137
+ const bids = responses.flatMap(response => (response.seatbid ?? []).flatMap(seatbid => seatbid.bid));
138
+ return {
139
+ ...(responses[0]),
140
+ seatbid: [{
141
+ ...(responses[0].seatbid?.[0] ?? {}),
142
+ bid: bids
143
+ }]
144
+ };
145
+ };
146
+ const makeVideo = (requestId, impid, videoUrl) => ({
147
+ id: requestId,
148
+ seatbid: [{
149
+ bid: [{
150
+ id: impid,
151
+ impid,
152
+ price: 3.50,
153
+ adid: '123456',
154
+ adm: `<?xml version="1.0" encoding="utf-8"?>
155
+ <VAST version="3.0">
156
+ <Ad id="preroll">
157
+ <InLine>
158
+ <Impression id="impression"><![CDATA[http://localhost:3005/impression]]></Impression>
159
+ <AdSystem><![CDATA[2.0]]></AdSystem>
160
+ <AdTitle><![CDATA[Title]]></AdTitle>
161
+ <Creatives>
162
+ <Creative>
163
+ <CompanionAds/>
164
+ </Creative>
165
+ <Creative>
166
+ <Linear>
167
+ <TrackingEvents>
168
+ <Tracking event="start"><![CDATA[http://localhost:3005/start]]>
169
+ </Tracking>
170
+ <Tracking event="firstQuartile"><![CDATA[http://localhost:3005/first]]>
171
+ </Tracking>
172
+ <Tracking event="midpoint"><![CDATA[http://localhost:3005/midpoint]]>
173
+ </Tracking>
174
+ <Tracking event="thirdQuartile"><![CDATA[http://localhost:3005/third]]>
175
+ </Tracking>
176
+ <Tracking event="complete"><![CDATA[http://localhost:3005/complete]]>
177
+ </Tracking>
178
+ <Tracking event="stop"><![CDATA[http://localhost:3005/stop]]>
179
+ </Tracking>
180
+ </TrackingEvents>
181
+ <Duration><![CDATA[00:30]]></Duration>
182
+ <MediaFiles>
183
+ <MediaFile
184
+ delivery="progressive"
185
+ type="video/mp4"
186
+ width="320"
187
+ height="240"
188
+ ><![CDATA[${videoUrl}]]></MediaFile>
189
+ </MediaFiles>
190
+ <VideoClicks>
191
+ <ClickThrough id="scanscout"><![CDATA[{SURF_COMMERCE_URL}]]>
192
+ </ClickThrough>
193
+ </VideoClicks>
194
+ </Linear>
195
+ <Extensions>
196
+ <Extension>
197
+ <Name>Wicked Sour Gummies</Name>
198
+ <BrandName>Surfside</BrandName>
199
+ <ProductType>Edible</ProductType>
200
+ </Extension>
201
+ </Extensions>
202
+ </Creative>
203
+ </Creatives>
204
+ </InLine>
205
+ </Ad>
206
+ </VAST>`,
207
+ nurl: 'https://www.surfside.io/win-notice'
208
+ }]
209
+ }]
210
+ });
211
+ const makeBanner = (requestId, impid, banner) => ({
212
+ id: requestId,
213
+ seatbid: [
214
+ {
215
+ bid: [{
216
+ id: impid,
217
+ impid,
218
+ w: banner.w,
219
+ h: banner.h,
220
+ price: 3.50,
221
+ nurl: 'https://google.com/',
222
+ adm: GetValueOrThrow(makeImage(makeRealBannerSize(banner.w), makeRealBannerSize(banner.h))).outerHTML
223
+ }]
224
+ }
225
+ ]
226
+ });
227
+ const makeRealBannerSize = (s) => s <= 16 ? s * 100 : s;
228
+ export const makeImage = (width, height, message) => {
229
+ const canv = document.createElement('canvas');
230
+ const originalWidth = width;
231
+ const originalHeight = height;
232
+ if (width % 10 === width && height % 10 === height) {
233
+ width *= 100;
234
+ height *= 100;
235
+ }
236
+ canv.width = width;
237
+ canv.height = height;
238
+ const ctx = canv.getContext('2d');
239
+ if (ctx === null) {
240
+ return Err(new Error('Failed to create 2D Canvas'));
241
+ }
242
+ const gradient = ctx.createLinearGradient(0, 0, canv.width, canv.height);
243
+ const randomColor1 = SurfColors[Math.floor(Math.random() * SurfColors.length)];
244
+ const randomColor2 = SurfColors[Math.floor(Math.random() * SurfColors.length)];
245
+ gradient.addColorStop(0, randomColor1);
246
+ gradient.addColorStop(1, randomColor2);
247
+ ctx.fillStyle = gradient;
248
+ ctx.fillRect(0, 0, canv.width, canv.height);
249
+ ctx.font = '48px Arial';
250
+ ctx.textAlign = 'center';
251
+ ctx.textBaseline = 'middle';
252
+ ctx.fillStyle = 'white';
253
+ ctx.strokeStyle = 'black';
254
+ ctx.lineWidth = 5;
255
+ const text = message ?? `${originalWidth}x${originalHeight}`;
256
+ ctx.strokeText(text, canv.width / 2, canv.height / 2);
257
+ ctx.fillText(text, canv.width / 2, canv.height / 2);
258
+ const img = document.createElement('img');
259
+ img.src = canv.toDataURL();
260
+ img.width = width;
261
+ img.height = height;
262
+ const anchor = document.createElement('a');
263
+ const coinflip = Math.round(Math.random()) === 0;
264
+ if (coinflip) {
265
+ anchor.href = 'https://www.surfside.io';
266
+ }
267
+ else {
268
+ anchor.href = '{SURF_COMMERCE_URL}';
269
+ }
270
+ anchor.appendChild(img);
271
+ const data = {
272
+ name: 'Product Title',
273
+ details: 'Product Description',
274
+ price: '50.00',
275
+ salePrice: '35.00',
276
+ clickthroughUrl: 'https://www.surfside.io',
277
+ cta: 'Add to bag',
278
+ productType: 'Flower',
279
+ thc: '20%',
280
+ cbd: '5%',
281
+ strain: 'Hybrid',
282
+ image: img.src,
283
+ brand_name: 'Surfside',
284
+ brandName: 'Surfside',
285
+ winUrl: 'https://www.surfside.io/win-notice',
286
+ pixelUrl: 'https://www.surfside.io/pixel',
287
+ ext: {}
288
+ };
289
+ const productInfo = document.createElement('div');
290
+ productInfo.id = 'surf-product-info';
291
+ productInfo.setAttribute('data-name', data.name ?? '');
292
+ productInfo.setAttribute('data-details', data.details ?? '');
293
+ productInfo.setAttribute('data-price', data.price ?? '');
294
+ productInfo.setAttribute('data-saleprice', data.salePrice ?? '');
295
+ productInfo.setAttribute('data-cta', data.cta ?? '');
296
+ productInfo.setAttribute('data-producttype', data.productType ?? '');
297
+ productInfo.setAttribute('data-thc', data.thc ?? '');
298
+ productInfo.setAttribute('data-cbd', data.cbd ?? '');
299
+ productInfo.setAttribute('data-strain', data.strain ?? '');
300
+ productInfo.setAttribute('data-brandname', data.brandName ?? '');
301
+ anchor.appendChild(productInfo);
302
+ return Ok(anchor);
303
+ };
304
+ const makeNative = (requestId, impid) => ({
305
+ id: requestId,
306
+ seatbid: [
307
+ {
308
+ bid: [{
309
+ id: impid,
310
+ impid,
311
+ price: 3.50,
312
+ nurl: 'https://www.surfside.io/win-notice',
313
+ adm: JSON.stringify(makeNativeResponse())
314
+ }]
315
+ }
316
+ ]
317
+ });
318
+ const makeNativeResponse = () => {
319
+ const fakeProduct = FakeProducts[Math.floor(Math.random() * FakeProducts.length)];
320
+ const adm = GetValue(makeImage(NativeSize, NativeSize, fakeProduct?.name));
321
+ const img = adm?.querySelector('img')?.src;
322
+ return {
323
+ native: {
324
+ ver: '1.2',
325
+ eventtrackers: [
326
+ {
327
+ event: EventTypes.Imp,
328
+ method: EventTrackingMethods.Img,
329
+ url: 'https://www.surfside.io/pixel'
330
+ },
331
+ {
332
+ event: EventTypes.Imp,
333
+ method: EventTrackingMethods.JS,
334
+ url: 'http://localhost:9001/local-assets/win-script.js'
335
+ }
336
+ ],
337
+ assets: [
338
+ {
339
+ id: NativeAssetId.Title,
340
+ required: 1,
341
+ title: {
342
+ text: fakeProduct.name
343
+ }
344
+ },
345
+ {
346
+ id: NativeAssetId.Image,
347
+ required: 1,
348
+ img: {
349
+ type: NativeImageTypes.Main,
350
+ url: img ?? ''
351
+ }
352
+ },
353
+ {
354
+ id: NativeAssetId.Sponsored,
355
+ required: 1,
356
+ data: {
357
+ type: NativeDataTypes.Sponsored,
358
+ value: fakeProduct.brand
359
+ }
360
+ },
361
+ {
362
+ id: NativeAssetId.Desc,
363
+ required: 1,
364
+ data: {
365
+ type: NativeDataTypes.Desc,
366
+ value: fakeProduct.description
367
+ }
368
+ }, {
369
+ id: NativeAssetId.Rating,
370
+ required: 1,
371
+ data: {
372
+ type: NativeDataTypes.Rating,
373
+ value: '4.5'
374
+ }
375
+ }, {
376
+ id: NativeAssetId.Price,
377
+ required: 1,
378
+ data: {
379
+ type: NativeDataTypes.Price,
380
+ value: '50.00'
381
+ }
382
+ }, {
383
+ id: NativeAssetId.SalePrice,
384
+ required: 1,
385
+ data: {
386
+ type: NativeDataTypes.SalePrice,
387
+ value: '35.00'
388
+ }
389
+ },
390
+ {
391
+ id: NativeAssetId.DisplayURL,
392
+ required: 1,
393
+ data: {
394
+ type: NativeDataTypes.DisplayURL,
395
+ value: 'https://www.surfside.io'
396
+ }
397
+ }, {
398
+ id: NativeAssetId.CTAText,
399
+ required: 1,
400
+ data: {
401
+ type: NativeDataTypes.CTAText,
402
+ value: 'Add to bag'
403
+ }
404
+ }, {
405
+ id: NativeAssetId.SurfCategory,
406
+ required: 1,
407
+ data: {
408
+ type: NativeDataTypes.SurfCategory,
409
+ value: 'Software'
410
+ }
411
+ }, {
412
+ id: NativeAssetId.SurfTHC,
413
+ required: 1,
414
+ data: {
415
+ type: NativeDataTypes.SurfTHC,
416
+ value: '20%'
417
+ }
418
+ }, {
419
+ id: NativeAssetId.SurfCBD,
420
+ required: 1,
421
+ data: {
422
+ type: NativeDataTypes.SurfCBD,
423
+ value: '5%'
424
+ }
425
+ }, {
426
+ id: NativeAssetId.SurfStrain,
427
+ required: 1,
428
+ data: {
429
+ type: NativeDataTypes.SurfStrain,
430
+ value: 'Hybrid'
431
+ }
432
+ },
433
+ {
434
+ id: NativeAssetId.SurfMetaProduct,
435
+ required: 1,
436
+ data: {
437
+ type: NativeDataTypes.SurfMetaProduct,
438
+ value: '123456'
439
+ }
440
+ }
441
+ ],
442
+ link: { url: '{SURF_COMMERCE_URL}?redirect=true' }
443
+ }
444
+ };
445
+ };
446
+ //# sourceMappingURL=Bidder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bidder.js","sourceRoot":"src/","sources":["mock/Bidder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export const CHEAT_CODES = {
2
+ returnSome: 'iddqd',
3
+ returnNone: 'idkfa',
4
+ allSameBrand: 'impulse101'
5
+ };
6
+ //# sourceMappingURL=CheatCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheatCodes.js","sourceRoot":"src/","sources":["mock/CheatCodes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,OAAO;IACnB,YAAY,EAAE,YAAY;CACpB,CAAC"}